将实体框架数据模型放在MVC应用程序中的位置?

Dar*_*usz 14 asp.net-mvc design-patterns entity-framework asp.net-mvc-2

让我们考虑默认的ASP.NET MVC应用程序文件夹结构,所以它看起来像这样:

-App_data
-Content
-Controllers
    HomeController.cs
-Models
    AccountModels.cs
-Scripts
-Views
Run Code Online (Sandbox Code Playgroud)

我的问题是:放置实体框架数据模型(EDMX)文件的最佳位置在哪里?是Models文件夹吗?是的 - 我们知道好的解决方案是引入新项目并将其引用到MVC应用程序,但现在让我们忘记这一点.

Geo*_*ker 18

对于一个小项目,它应该是模型的一部分.对于较大的产品,存储库和关联的模型可以位于单独的程序集中.


RPM*_*984 8

这是有争议的,但我会为Models文件夹投票+1 .

唯一的另一个候选者是App_Data,但这通常用于基于文件的数据库(例如SQL Server CE .MDF)和IIS不希望提供的文件.

由于EDMX是数据库的抽象,因此它应该进入Models文件夹.

如果项目变大,您应该定义将EF模型移动到另一个项目中.为了证明自己的未来,让控制器通过存储库/接口访问EDMX,因此当您将DAL移动到另一个项目时,您所要做的就是添加引用并添加using语句.