【问题标题】:Update an entire record using entity framework使用实体框架更新整个记录
【发布时间】:2018-04-19 22:25:05
【问题描述】:

我这里有一个工作代码。

using (var db = new MyContextDB())
{
    var result = db.Books.SingleOrDefault(b => b.BookNumber == bookNumber);
    if (result != null)
    {
        result.MyColumnName= "Some new value";
        db.SaveChanges();
    }
}

但是我有很多属性要改变。所以我正在尝试类似的东西

            result= newResult;
            db.SaveChanges();

但这不起作用。有没有办法用新记录替换记录?

【问题讨论】:

    标签: c# entity-framework entity-framework-5 ef-database-first


    【解决方案1】:

    我想,你不能这么容易做到。

    您应该在 Book 类中创建一个方法,在其中更改所有属性。

    result.Update(Book newProperties);
    db.SaveChanges();
    

    result.Update(string prop1, int prop2, etc.);
    db.SaveChanges();
    

    【讨论】:

      【解决方案2】:

      我建议使用Automapper。你可以这样使用它:

      var result = db.Books.SingleOrDefault(b => b.BookNumber == bookNumber);
      if (result != null)
      {
          Mapper.Map(newResult, result);
          db.SaveChanges();
      }
      

      注意,您可能需要正确配置 Automapper(例如,在更新时忽略 Id 属性)

      【讨论】:

        猜你喜欢
        • 2021-09-21
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-12-16
        • 1970-01-01
        • 2017-08-07
        • 1970-01-01
        相关资源
        最近更新 更多