'System.Data.Entity.DbSet <t>'不包含'Entry'错误的定义</t>

时间:2014-07-18 21:02:12

标签: c# .net

我正在尝试对db上下文进行基本更新。我正在使用mvc4

这就是我在我的控制器中所拥有的:

context.Entry<Rental>(rental);
context.SaveChanges();
return RedirectToAction("Index");

我有一个带有此定义的dbcontext类:

T IDAContext.Entry<T>(T entity)
{
     return Set<T>().Entry(entity).State = EntityState.Modified;
}

最后在我的界面

T Entry<T>(T entity) where T : class;

我收到此错误

  

&#39; System.Data.Entity.DbSet&#39;不包含&#39; Entry&#39;的定义没有扩展方法&#39; Entry&#39;接受类型&#39; System.Data.Entity.DbSet&#39;的第一个参数。可以找到(你错过了使用指令或程序集引用吗?)

也得到了

  

名称&#39; EntityState&#39;在当前上下文中不存在**

1 个答案:

答案 0 :(得分:0)

我的通灵调试能力告诉我,即使context被声明为DbSet,您也可以将其实例化为某些派生自DbSet的类,您希望Entry()方法

如果是这种情况,那么你应该首先声明context是派生类型,或者你应该将它转换为派生类型

((InsertDerivedTypeHere)context).Entry<Rental>(rental);