我在这里使用此代码示例.. http://msdn.microsoft.com/en-us/data/gg685489
[HttpPost]
public ActionResult Edit(int id, Blog blog)
{
try
{
using (var db = new BlogDataEntities())
{
db.Entry(blog).State = System.Data.EntityState.Modified;
db.SaveChanges();
return RedirectToAction("Index");
}
}
catch
{
return View();
}
}
我在实现上述代码时遇到了困难 - 该示例假定使用EF 4.1而我使用的是旧版本。我后来将我的EF版本升级到4.3,但我仍然无法做到这一点。我访问了nuget包并从那里安装了它。我检查了引用,EF版本被确认为4.3 ...即使在新安装的EF之后,intellisense也没有向我显示“db.entry”选项....任何人都可以告诉我,如果我错过了另一个走到这里......谢谢。
答案 0 :(得分:1)
如果您不使用Code First,那么默认数据上下文是ObjectContext(而不是您的代码设计使用的DbContext)。如果您正在使用ObjectContext,那么您将要执行此操作:
http://msdn.microsoft.com/en-us/library/bb896248.aspx
但是我建议右键单击模型并“添加代码生成项”并添加DbContext模板。然后,这会将您的对象上下文转换为dbcontext,并允许您在尝试编码时访问条目。任何一个都可以工作,但DbContext有一个更容易使用的API。