Possible Duplicate:
07000
在ASP.NET MVC中可以使用EF实体类作为视图模型吗?
如果viewmodel与EF实体类的90%相同,该怎么办?
假设我在实体框架模型中有一个Survey类.它90%匹配视图编辑所需的数据.
与任何视图模型应该具有的唯一区别是一个或多个要使用的属性(需要填充Survey对象,因为EF类不能直接映射到如何表示属性(子复选框,无线电组等) .))
你使用ViewData []传递它们吗?或者使用新的附加属性创建Survey类(Surveyviewmodel)的副本(应该能够从调查中复制数据并返回给它)?
编辑:
我也试图避免使用Survey作为Surveyviewmodel属性.当使用UpdateModel或默认绑定更新某些Survey属性时,使用Surveviewmodel自定义属性在控制器中使用其他(不能直接映射到实体)时,将会看起来很奇怪.
解决方法
我喜欢使用在视图和视图模型之间始终具有1:1关系的
Jimmy Bogard’s approach.换句话说,我不会使用我的域模型(在这种情况下,你的EF实体)作为视图模型.如果你觉得在两者之间做了很多工作映射,你可以使用像
AutoMapper这样的工作来为你做这些工作.