我正在关注this文章,以在Web API项目中实现存储库模式。在存储库中实现更新方法时,我遵循提供的示例,使用:
context.Entry<Item>(item).State = System.Data.EntityState.Modified;
出于某种原因,虽然我收到了以下构建错误,
无法将system.data.entitystate类型的实例分配给a system.data.entity.entitystate类型的变量
除了我使用与示例中使用的实体不同的实体之外,我的代码与示例中的代码相同。任何想法,为什么我可能会收到此错误?我正在使用EF 6.02。
干杯
答案 0 :(得分:5)
错误信息非常清楚,你使用了错误的类型,你只需要写:
context.Entry<Item>(item).State = System.Data.Entity.EntityState.Modified;
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自动添加)以避免将来出现这些类型不匹配错误。