entityframework克隆或将实体实例复制到另一个对象

时间:2017-12-15 20:53:09

标签: entity-framework asp.net-core-mvc entity-framework-core

我正在开发一个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;

由于

1 个答案:

答案 0 :(得分:0)

您可以使用AutoMapper来实现它。这是执行它的理想方式。另一个选择是你可以将对象序列化和deseriliaze为json。

var myviewmodelinstance = JsonConvert.DeserializeObject<MyViewModel>(JsonConvert.SerializeObject(myentity));

注意:我提供的代码需要Json.Net