1.常用
db.Entry(實體).State = EntityState.Modified;
db.SaveChanges();
2.指定更新
db.Configuration.ValidateOnSaveEnabled = false;
db.TUser.Attach(實體);
ObjectStateEntry stateEntry = ((IObjectContextAdapter)db).ObjectContext.ObjectStateManager.GetObjectStateEntry(實體);
stateEntry.SetModifiedProperty("字段1");
stateEntry.SetModifiedProperty("字段2");
db.SaveChanges();
db.Configuration.ValidateOnSaveEnabled = true;
3.指定更新(推薦!好用!)
TConsultant model = db.TConsultant.FirstOrDefault(t => t.ID == iID);
if (TryUpdateModel(model, new string[] { "Name", "Sex", "PhoneNuber", "CertificateNumber", "Email", "QQ", "Culture" }))
{
db.SaveChanges();
return Content("修改成功!");
}
4.代碼部分
[HttpPost] /// <summary> /// 執行修改的代碼 /// </summary> /// <param name="model"></param> /// <returns></returns> public ActionResult Modify(BlogArticle model) { try { //1.將實體對象 a.加入 EF 對象容器中,並 b.獲取 偽包裝類對象 DbEntityEntry<BlogArticle> entry = db.Entry<BlogArticle>(model); //2.將包裝類對象的狀態設置為 unchanged entry.State = System.Data.EntityState.Unchanged; //3.設置 被改變的屬性 entry.Property(a => a.ATitle).IsModified = true; entry.Property(a => a.AContent).IsModified = true; entry.Property(a => a.ACate).IsModified = true; //4.提交到數據庫 完成修改 db.SaveChanges(); //5.更新成功,則命令瀏覽器 重定向 到 /Home/List 方法 return RedirectToAction("Index", "Home"); } catch (Exception ex) { return Content("修改失敗~~~" + ex.Message); } } 升級版: db.Entry(model).State = EntityState.Unchanged; db.Entry(model).Property(m => m.字段名).IsModified = true; db.SaveChanges();