我尝试从实体框架4在我的数据库上下文中调用它时,出现“无法解析符号ObjectStateManager ”的错误。我找不到其他人遇到此问题。我尝试使用 System.Data 和 System.Data.Objects 。
是否需要制作特定的实体框架才能使用ObjectStateManager?或者我错过了某种安装包?我正在使用Database First Entity Framework。
以下是我给出错误的代码:(第7行)
[HttpPost]
public ActionResult EditProfile(User user)
{
if (ModelState.IsValid)
{
db.Users.Attach(user);
db.ObjectStateManager.ChangeObjectState(user, EntityState.Modified);
db.SaveChanges();
}
return RedirectToAction("Profile");
}
答案 0 :(得分:28)
我相信你现在找到了一个解决方案,但我刚刚遇到了同样的问题,并且能够通过将EntityState行更改为以下内容来解决它:
db.Entry(user).State = EntityState.Modified;
答案 1 :(得分:13)
可能你首先使用代码EF。在这种情况下,您必须将您的代码还原为显式实现IObjectContextAdapter,即
((IObjectContextAdapter)db).ObjectContext.ObjectStateManager
答案 2 :(得分:0)
您是否已将System.Data.Entity
程序集添加到项目中?
同样System.Data.Objects
也是正确的。
答案 3 :(得分:0)
要检查的另一个项目是项目的目标.net框架设置为.net 4 +。