Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/321.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 将一个对象数据复制到另一个对象?_C#_Asp.net_.net_Entity Framework - Fatal编程技术网

C# 将一个对象数据复制到另一个对象?

C# 将一个对象数据复制到另一个对象?,c#,asp.net,.net,entity-framework,C#,Asp.net,.net,Entity Framework,我需要更新EF记录,在方法中我有EF对象和另一个新的objct,我想用它来更新数据。但我不知道如何将数据从新对象复制到现有对象 请帮忙。 这是我的密码: public int PostHomeLead(string _lead) { try { int result = 0; Lead lead = new Lead(); lead = new JavaScriptSerializer().

我需要更新EF记录,在方法中我有EF对象和另一个新的objct,我想用它来更新数据。但我不知道如何将数据从新对象复制到现有对象

请帮忙。 这是我的密码:

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;
       }

   }
public int-PostHomeLead(字符串\u-lead)
{
尝试
{
int结果=0;
铅铅=新铅();
lead=新的JavaScriptSerializer()。反序列化(_lead);
//检查是否存在具有相同会话id的lead,如果存在,请以其他方式更新它并添加新的会话id。
Lead existingLead=新Lead();
existingLead=db2.HomeLoanCustRepo.GetByID(lead.lead\u id);
如果(existingLead==null)
{
db2.HomeLoanCustRepo.Insert(lead);
db2.Save();
结果=1;
}
其他的
{                   
db2.HomeLoanCustRepo.Update(lead);
db2.Save();
结果=1;
}
返回结果;
}
捕获(例外情况除外)
{
掷骰子;
}
}

手动映射属性:

existingLead.Foo = deserializedLead.Foo;
existingLead.Bar = deserializedLead.Bar;
existingLead.Baz = deserializedLead.Baz;
或者使用这样的库,比如AutoMapper


至于你的评论,这似乎是你想要的。注意:当您不验证哪些属性可能会被更新时,这允许。在使用克隆或映射时,需要删除克隆的对象,因为它与
GetByID()
返回的对象不同,因此实体框架的更改跟踪器不会识别它。

您的代码有什么具体问题?@Servy我问的是如何将一个对象数据复制到另一个对象。是否可以使用linq或lambda或任何现成的.net类/库?@user576510请参见编辑。谢谢,我使用的是Attach()但它会抛出另一个对象使用主键的错误。请帮助我什么是解决方案。解决方案是搜索网站和本网站,查找您收到的实际错误,并应用您从那里读到的知识。对不起,我不知道。最后一个提示:您的错误是由于首先调用
GetByID()
,将该实体拉入更改跟踪器,并使用相同的上下文尝试保存另一个具有相同ID的实体。您需要使该
GetByID()
查询
。AsNoTracking()