使用MVC3和DBML

时间:2011-07-12 18:33:25

标签: c# asp.net-mvc-3

现在我正在使用.dbml文件中生成的类,并通过存储库模式的实现将数据传递给控制器​​。我的问题是,我是否需要在没有linq-to-sql和没有特定标志的情况下从.dbml创建基本克隆类的类,或者是否需要正确分离域逻辑?

1 个答案:

答案 0 :(得分:4)

您所指的克隆有一个名称:查看模型。是的,你绝对应该使用视图模型。它们是根据给定视图的特定要求量身定制的。然后,控制器应查询存储库以获取某些域模型(自动生成的Linq-To-Sql类,EF实体......)并将它们映射到将传递给视图的视图模型类。这就是IMHO应该如何设计每个正确构建的ASP.NET MVC应用程序的方法。您不应将域模型传递给视图,也不应将任何域模型作为操作参数从视图中接收。仅查看模型。

视图模型不是域模型的克隆。视图模型可以从多个域模型中映射出来,或者一个域模型可能会分解为多个视图模型。通过这种方式,视图可以完全灵活地表示数据,而与数据在业务层中的传输方式无关。