MVVM中的模型,可以是Linq2SQL或EF生成的类,还是必须是域类?

时间:2011-04-03 19:47:40

标签: mvvm

在MVVM中,模型位可以是域模型,还是由Linq2SQL或EF生成的类?

2 个答案:

答案 0 :(得分:2)

是的,不!业务层&就MVVM模式而言,应用程序的数据层将构成MODEL。

如果您的应用程序不是短暂且简单的,我会将MVVM模型位实现为两个不同的层;具有域模型及其相应数据访问层的业务层。

作为DDD(域驱动设计)的忠实粉丝,我会提倡一个与您可以管理的POCO(普通旧CLR对象)一样接近的域模型。使用Repository模式从数据访问的细节中隔离这些类(应该只是应用程序的业务逻辑)。在数据访问层中,plonk所有EF或LINQ-to-SQL代码。

数据访问层中的数据访问代码,业务逻辑位于其自己的层中。两者是不同的,值得他们自己专注的应用层恕我直言。

答案 1 :(得分:1)

如果我正确理解MVVM,那么模式的重点是ViewModel充当Model和View之间的演示者;它接受一个模型,并将其/适应于View可理解的形式。所以在那个框架中,你的模型几乎可以是任何东西。