将一个对象数据复制到其他?

时间:2014-11-12 22:09:29

标签: c# asp.net .net entity-framework

我需要更新EF记录,方法是我有EF对象和另一个我想用来更新数据的新对象。但我不确定如何将数据从新对象复制到现有对象。

请帮助。 这是我的代码:

public int   PostHomeLead(string _lead)
   {

       try
       {
           int result = 0;
           Lead lead = new Lead();
           lead = new JavaScriptSerializer().Deserialize<Lead>(_lead);

           //check if lead exist with same session id, if so update it other wise add new.
           Lead existingLead = new Lead();
           existingLead = db2.HomeLoanCustRepo.GetByID(lead.Lead_id);

           if (existingLead == null)
           {
               db2.HomeLoanCustRepo.Insert(lead);
               db2.Save();
               result = 1;
           }
           else
           {                   
               db2.HomeLoanCustRepo.Update(lead);
               db2.Save();
               result = 1;
           }
           return result;           
       }
       catch(Exception ex)
       {
           throw ex;
       }

   }

1 个答案:

答案 0 :(得分:1)

手动映射属性:

existingLead.Foo = deserializedLead.Foo;
existingLead.Bar = deserializedLead.Bar;
existingLead.Baz = deserializedLead.Baz;

或使用执行此操作的库,如AutoMapper。

至于你的评论,creating a deep copy就是你的目标。请注意,如果您不确认可以更新哪些属性,则允许overposting or mass assignment。在使用克隆或映射时,您需要Attach()克隆的对象,因为它与GetByID()返回的对象不同,因此实体框架的更改跟踪器赢了&#39 ;认识它。