[英]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.