Possible Duplicate:
ASP.NET MVC - Linq to Entities model as the ViewModel - is this good practice?




可以将EF实体类用作ASP.NET MVC中的视图模型吗?

如果viewmodel与EF实体类的90%相同怎么办?

假设我在实体框架模型中有一个Survey类。它与视图进行编辑所需的数据匹配90%。
与视图模型应具有的唯一区别是-将要使用的一个或多个属性(由于无法将EF类直接映射到其属性的表示方式,因此必须填充Survey对象)(子复选框,单选组等) ))

您是否使用ViewData []传递了它们?还是用新的其他属性创建Survey类(SurveyViewModel)的副本(它应该能够从Survey复制数据并将其复制回它)?

编辑:
我也试图避免将Survey用作SurveyViewModel属性。当某些Survey属性使用UpdateModel或默认联编程序进行更新,而另一些属性(无法直接映射到实体)(使用控制器中的SurveViewModel自定义属性)时,将显得很奇怪。

最佳答案

我喜欢使用Jimmy Bogard's approach在视图和视图模型之间始终保持1:1关系。换句话说,我不会将域模型(在这种情况下为您的EF实体)用作视图模型。如果您觉得自己在两者之间做了大量工作映射,则可以使用AutoMapper之类的内容来为您完成工作。

10-07 12:51
查看更多