我正在开发一个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;
由于
答案 0 :(得分:0)
您可以使用AutoMapper
来实现它。这是执行它的理想方式。另一个选择是你可以将对象序列化和deseriliaze为json。
var myviewmodelinstance = JsonConvert.DeserializeObject<MyViewModel>(JsonConvert.SerializeObject(myentity));
注意:我提供的代码需要Json.Net