使用EntityState.Modified时出错

B-L*_*Lat 1 c# entity-framework

我下面这个文章来实现在Web API项目库模式.在存储库中实现更新方法时,我遵循提供的示例,使用:

context.Entry<Item>(item).State = System.Data.EntityState.Modified;
Run Code Online (Sandbox Code Playgroud)

出于某种原因,虽然我收到以下构建错误,

system.data.entitystate类型的实例不能分配给system.data.entity.entitystate类型的变量

我的代码与示例中的代码相同,而不是我使用与示例中使用的实体不同的实体.任何想法,为什么我可能会收到此错误?我正在使用EF 6.02.

干杯

nem*_*esv 5

错误信息非常清楚,你使用的是错误的类型,你只需要写:

context.Entry<Item>(item).State = System.Data.Entity.EntityState.Modified;
Run Code Online (Sandbox Code Playgroud)

System.Data.Entity.EntityState是生活在EF的EntityFramework.dll,而System.Data.EntityState住在了System.Data.Entity.dll.

从EF6开始,不需要引用System.Data.Entity.dll(包含EntityFramework的某些部分,在以前的EF版本中需要它们).

因此,您可以删除System.Data.Entity.dll引用(在创建新项目时由Visual Studio自动添加)以避免将来出现这些类型不匹配错误.