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

MVVM中的模型可以是Linq2SQL或EF生成的类,还是必须是域类?,mvvm,Mvvm,在MVVM中,模型位可以是域模型,也可以是由Linq2SQL或EF生成的类吗?如果我正确理解MVVM,模式的要点是ViewModel充当模型和视图之间的演示者;它接受一个模型,并将其放置/调整为视图可以理解的形式。所以在这个框架中,你的模型几乎可以是任何东西。是和否!就MVVM模式而言,应用程序的业务层和数据层将构成模型 如果你的应用程序不是短命和简单的,我会将MVVM模型bit实现为两个不同的层;具有域模型及其相应数据访问层的业务层 作为DDD(域驱动设计)的忠实粉丝,我主张使用一种尽可能接近

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

如果我正确理解MVVM,模式的要点是ViewModel充当模型和视图之间的演示者;它接受一个模型,并将其放置/调整为视图可以理解的形式。所以在这个框架中,你的模型几乎可以是任何东西。

是和否!就MVVM模式而言,应用程序的业务层和数据层将构成模型

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

作为DDD(域驱动设计)的忠实粉丝,我主张使用一种尽可能接近POCO(普通的旧CLR对象)的域模型。使用Repository模式将这些类(实际上应该是应用程序的业务逻辑)与数据访问的细节隔离开来。在数据访问层,将所有EF或LINQ链接到SQL代码


数据访问层中的数据访问代码,其自身层中的业务逻辑。这两者是不同的,应该有自己的重点应用层IMHO。

什么是域模型?实际上,模型是一个松散的概念,可以表示任何对象:数据库、EF实体、xml文件等。但这难道不意味着在某一点上,您需要从数据层实体到域层实体的转换吗?例如,对于我自己的项目,我使用一个服务层,在该层中,我可以从数据库中编写所有需要的脚本。我得到一个实体,然后用该实体填充一个新的域模型。然而,在我的工作中,除了EF实体之外,没有域对象。有时是的,你有。如果您的数据库/服务是您的,您可能不必这样做就可以逃脱。当您有不同的DAL/BL类时,然后使用适配器模式将一个类转换为另一个类或从另一个类转换为另一个类,从而将“grunt”代码与任何“适当”的应用程序逻辑隔离开来,以使其易于阅读