实体框架存储库更新抛出异常

时间:2014-01-04 16:11:08

标签: c# entity-framework repository-pattern

我正在尝试使用名为BaseRepository的基类创建一个使用EF的通用存储库。由于一个奇怪的原因,我的更新方法不起作用。代码如下

public void UpdateItem(T item)
{
    _context.Entry(item).State = EntityState.Modified;
}

当我尝试调试我的测试方法时,即使我在执行的唯一代码行之前有一个断点,它也不会进入UpdateItem()方法。一旦我尝试进入该方法,它就会抛出以下错误

  

MissingMethodException - 找不到方法:'无效   System.Data.Entity.Infrastructure.DbEntityEntry'1.set_State   (System.Data.EntityState)

它编译得很好但在运行时出错。

有没有人有任何想法?

1 个答案:

答案 0 :(得分:3)

错误是缺少方法异常。有一个Runtime无法找到的方法。

如果接口中的某些方法未实现,则会出现编译时错误。

因此,很可能是您的项目中未引用的dll中的扩展方法。

您需要将EF Nuget包添加到您的项目中,而不是通过添加参考来引用dll。