Asp.net mvc 2 MVC与实体模型的混淆

Asp.net mvc 2 MVC与实体模型的混淆,asp.net-mvc-2,entity-framework-4,Asp.net Mvc 2,Entity Framework 4,我的困惑源于我在构建mvc应用程序时使用了两种不同的演练,即:Steven Sanderson的pro asp.net mvc和在线mvc音乐商店。前者创建一个域模型,将实体模型与存储库一起放在其中,而music store演示将实体模型放在mvc model文件夹中。以下哪种方法是最好的方法。实体模型和关联的存储库应该存在于单独的域层中,还是存在于MVCs模型文件夹中。从战略上讲,将EF模型放置在与存储库相同的文件夹中是有意义的,因为它只是应用程序内部的一部分 逻辑上最好将EF模型放在mode

我的困惑源于我在构建mvc应用程序时使用了两种不同的演练,即:Steven Sanderson的pro asp.net mvc和在线mvc音乐商店。前者创建一个域模型,将实体模型与存储库一起放在其中,而music store演示将实体模型放在mvc model文件夹中。以下哪种方法是最好的方法。实体模型和关联的存储库应该存在于单独的域层中,还是存在于MVCs模型文件夹中。

从战略上讲,将EF模型放置在与存储库相同的文件夹中是有意义的,因为它只是应用程序内部的一部分

逻辑上
最好将EF模型放在
model
目录中,因为它创建了在应用程序中反映数据库所需的所有类。(如果打开
类视图
,将所有这些类放在名为
Model
的文件夹中,而不是
存储库
,看起来会更好)

在我们公司,我们也遇到了同样的问题,决定将EF模型保存在模型文件夹中

毕竟,你做什么取决于你自己。这里要做的最重要的事情是记录在开发过程中发生的所有类型的决策(何时、为什么以及基于什么)


从战略上讲
将EF模型放在与存储库相同的文件夹中是有意义的,因为它只是应用程序内部的一部分

逻辑上
最好将EF模型放在
model
目录中,因为它创建了在应用程序中反映数据库所需的所有类。(如果打开
类视图
,将所有这些类放在名为
Model
的文件夹中,而不是
存储库
,看起来会更好)

在我们公司,我们也遇到了同样的问题,决定将EF模型保存在模型文件夹中

毕竟,你做什么取决于你自己。这里要做的最重要的事情是记录在开发过程中发生的所有类型的决策(何时、为什么以及基于什么)

关注点分离 Asp.net MVC项目模板中的模型文件夹确实非常混乱。大多数对MVC模式了解不够的开发人员认为应用程序/域模型=数据模型。大多数时候,情况并非如此

例如,一个用户实体可能有几种不同的形式:

  • NewUser
    是一个应用程序模型实体,它具有用户的大多数属性,加上两个可以声明验证的密码属性
  • 用户
    数据模型实体具有所有常用的用户属性和一个密码属性
  • 用户
    应用程序模型实体具有所有常用属性,密码为
所以你可以通过这个简单的例子看到,有多个模型彼此不同。当您有一个多组装的应用程序时,将应用程序模型放在一个单独的程序集中是非常明智的,因为所有程序集很可能只使用这些对象进行通信。不应将任何数据模型实体传输到数据组件/层之外,以利用SoC

因此,在构建小规模的简单应用程序时,最终可以将数据模型放在模型文件夹中,但在所有其他情况下,最好使用在所有程序集之间共享的单独应用程序模型程序集。并且有一个单独的数据模型,仅用于数据层组装

阅读可能会帮助你看得更清楚一些。
还有

我建议不要使用Model文件夹,而是使用单独的程序集。这样可以更好地分离和提高可伸缩性。

分离关注点 Asp.net MVC项目模板中的模型文件夹确实非常混乱。大多数对MVC模式了解不够的开发人员认为应用程序/域模型=数据模型。大多数时候,情况并非如此

例如,一个用户实体可能有几种不同的形式:

  • NewUser
    是一个应用程序模型实体,它具有用户的大多数属性,加上两个可以声明验证的密码属性
  • 用户
    数据模型实体具有所有常用的用户属性和一个密码属性
  • 用户
    应用程序模型实体具有所有常用属性,密码为
所以你可以通过这个简单的例子看到,有多个模型彼此不同。当您有一个多组装的应用程序时,将应用程序模型放在一个单独的程序集中是非常明智的,因为所有程序集很可能只使用这些对象进行通信。不应将任何数据模型实体传输到数据组件/层之外,以利用SoC

因此,在构建小规模的简单应用程序时,最终可以将数据模型放在模型文件夹中,但在所有其他情况下,最好使用在所有程序集之间共享的单独应用程序模型程序集。并且有一个单独的数据模型,仅用于数据层组装

阅读可能会帮助你看得更清楚一些。
还有


我建议不要使用Model文件夹,而是使用单独的程序集。这样可以更好地分离和提高可伸缩性。

那么,您是将DAL放入单独的项目中,还是将整个DAL放入models文件夹中?您是将DAL放入单独的项目中,还是将DAL放入单独的项目中把你所有的DAL都放在模型文件夹里?Brill,这正是我要找的。谢谢斯图尔特同意了。保留“模型”文件夹仅用于“视图模型”。Brill,