entityframework克隆或将实体实例复制到另一个对象
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了entityframework克隆或将实体实例复制到另一个对象相关的知识,希望对你有一定的参考价值。
我正在开发一个asp.net mvc core 2.0项目和entityframework。
我正在使用viewmodel概念。
这意味着我不直接将实体实例传递给我的视图,我传递一个viewmodel实例,它只包含视图所需的内容。
在一种情况下,我需要传递整个实体字段和其他信息。
我所做的是从我的实体类派生出来的ViewModel类。我添加了额外的字段:
public MyViewModel: Person
{
// I will automaticly have Person fields in MyViewModel
public bool IsSelected {get;set;}
public String otherinformation {get;set;}
...
}
我厌倦了从我的实体实例中分配我的viewmodel的每个字段。
myviewmodelinstance.field1 = myentity.field1;
myviewmodelinstance.field2 = myentity.field2;
myviewmodelinstance.field3 = myentity.field3;
myviewmodelinstance.IsSelected = false;
...
我需要在回发中执行逆操作。
有没有办法“复制”或“克隆”每个字段,如下所示:
myentity.CopyTo(myviewmodelinstance);
myviewmodelinstance.IsSelected = false;
谢谢
答案
您可以使用AutoMapper
来实现它。这是执行它的理想方式。另一种选择是你可以将对象序列化和deseriliaze为json。
var myviewmodelinstance = JsonConvert.DeserializeObject<MyViewModel>(JsonConvert.SerializeObject(myentity));
注意:我提供的代码需要Json.Net
以上是关于entityframework克隆或将实体实例复制到另一个对象的主要内容,如果未能解决你的问题,请参考以下文章
克隆 JavaScript 对象时如何排除键列表? [复制]