替换实体框架对象

时间:2010-03-16 09:40:42

标签: asp.net-mvc entity-framework

在MVC应用程序中,我有一个在经典视图/编辑/创建模式中使用的大对象。

当用户编辑对象时,我将其保存为:

  public bool SetMyObject(MyObject newObject) {
     MyObject current = GetObjectById(newObject.Id);
     current.Prop1 = newObject.Prop1
     ...
     current.PropN = newObject.PropN
     db.SaveChanges();
  }

MyObject相当大,所以我想知道有没有更好的方法来做到这一点,不涉及每个属性的分配。例如,db.MyObject.UpdateObject(current, tnew)行中的某些内容。

1 个答案:

答案 0 :(得分:3)

您可以使用ApplyPropertyChanges方法。

  

将已分离对象的属性更改应用于已附加到对象上下文的对象。

public bool SetMyObject(MyObject newObject)
{
    db.ApplyPropertyChanges("MyObjectSet", newObject);
    db.SaveChanges();
}

(其中“MyObjectSet”是对象所属的实体集的名称)