EF实体的部分更新

Posted 毛毛虫

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了EF实体的部分更新相关的知识,希望对你有一定的参考价值。

实现实体的部分更新
假设实体InfoHotel如下:

public class InfoHotel

{

  public int Id{get;set;}

  public string Name{get;set;}

  public string Address{get;set;

  public string Other1{get;set};

  public string Other1{get;set};

  public string Other2{get;set};

  public string Other3{get;set};

 

}

有个网页仅仅修改Name和Address,保存的Action如下

[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult Edit([Bind(Include = "Id,Name,Address")] InfoHotel item)
{
  if (ModelState.IsValid)
  {
    var oldItem = db.InfoHotels.Find(this.KeyCorp);
    oldItem.Name = item.Name;
    oldItem.Address = item.KeyCardRW;
    oldItem.KeyPms = item.KeyPms;
    db.SaveChanges();
    return RedirectToAction("Index");
  }
  return View(item);
}

比较麻烦,可以改成

public ActionResult Edit([Bind(Include = "Id,Name,Address")] InfoHotel item)
{
  if (ModelState.IsValid)
  {
    var oldItem = db.InfoHotels.Find(this.KeyCorp)
db.Entry(oldItem).CurrentValues.SetValues(item);
    db.SaveChanges();
    return RedirectToAction("Index");
  }
  return View(item);
}

以上是关于EF实体的部分更新的主要内容,如果未能解决你的问题,请参考以下文章

C# EF6 代码优先实体状态

EF7 如何处理嵌套实体的更新操作

EF 开始的片段时有问题 具有潜在运行时冲突

无法更新EF6中的实体?

在EF4中无法在不首先获取实体的情况下更新实体

EF添加关联的提示问题:映射从第 260 行开始的片段时有问题: