[英]copy entity in entity framework?
例如,我有一個綁定到客戶實體的wpf窗口(假設它是cus1)。 然后我從上下文加載另一個實體:
customer cus2 = context.customers.where(x=>x.id=10).FirstOrDefault();
現在我想要cus1 = cus2嗎? 我可以這樣:
cus1.name = cus2.name;
cus1.address = cus2.address;
...
...
這種方式符合我的情況(表格中文本框的內容立即變為cus2的值),但是我想知道是否有任何方法可以使它更短,因為cus1 = cus2不起作用?
謝謝
您可以使用memberwise Clone方法來制作業務對象的淺表副本:請參閱http://msdn.microsoft.com/de-de/library/system.object.memberwiseclone.aspx
如果要使用數據存儲中的最新值更新內存中的Customer實體的值,則可以在ObjectContext上使用Refresh方法。
這是文檔 。
在您的情況下,它看起來像:
context.Refresh(RefreshMode.StoreWins, cus1);
如果您真的想映射兩個實體,可以看看AutoMapper 。 AutoMapper將使用默認設置自動調整彼此之間的映射關系,您可以根據需要進行調整。
您也可以使用序列化或反射來自行完成。 但是,這兩種方法都比直接寫入要慢。
看一下這篇文章。 也許您會發現它很有幫助:
http://www.codeproject.com/KB/dotnet/CloningLINQ2Entities.aspx
編輯:順便說一句。 請記住,如果使用ReferenceType,則使用MemberwiseClone會影響復制引用而不是對象。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.