Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/design-patterns/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Design patterns 在asp.net mvc 4基于代码优先的应用程序中,数据访问层的正确位置在哪里_Design Patterns_Asp.net Mvc 4_Entity Framework 5_Code First - Fatal编程技术网

Design patterns 在asp.net mvc 4基于代码优先的应用程序中,数据访问层的正确位置在哪里

Design patterns 在asp.net mvc 4基于代码优先的应用程序中,数据访问层的正确位置在哪里,design-patterns,asp.net-mvc-4,entity-framework-5,code-first,Design Patterns,Asp.net Mvc 4,Entity Framework 5,Code First,我正在遵循O'Reilly的《编程ASP.NET MVC 4》的《使用ASP.NET MVC开发真实世界的Web应用程序》,我已经到了必须创建第一个真实实体的地步。这是本书中的代码片段: using System.Data.Entity; public class EbuyDataContext : DbContext { public DbSet<Auction> Auctions { get; set; } } 使用System.Data.Entity; 公共类EbuyData

我正在遵循O'Reilly的《编程ASP.NET MVC 4》的《使用ASP.NET MVC开发真实世界的Web应用程序》,我已经到了必须创建第一个真实实体的地步。这是本书中的代码片段:

using System.Data.Entity;
public class EbuyDataContext : DbContext
{
public DbSet<Auction> Auctions { get; set; }
}
使用System.Data.Entity;
公共类EbuyDataContext:DbContext
{
公共数据库集拍卖{get;set;}
}
但这门课到底放在哪里还不清楚。我以前有一个项目是先用EF代码构建的,但是在那里我们使用了存储库模式和单独的项目来处理数据访问。现在我想自己做一些学习,我真的很喜欢这本书,但我知道设计模式和良好的编程实践是多么重要,即使从逻辑上来说,将这个类放入从
Visual Studio
为我创建的
Model
文件夹中,我想确保我坚持正确的做法


没有名称空间可以给我一个提示,所以我真的很想知道在哪里放置实体是最好的(这是第一个,但随着本书的继续,可能会有更多)

将DAL放在一个让您感觉良好的名称空间中。单独的项目或同一项目。以后你可以随时更改它(毫无疑问,作为了解你喜欢什么和/或不喜欢什么的一部分,你会多次这样做)。请注意,没有理由停止将存储库模式与DAL一起使用-事实上,DAL可能就是存储库模式。(在这种情况下,我通常倾向于将“DAL”/BLL与ORM或EF提供的实际DAL合并。)嗯,也许我的问题不是很正确。我知道处理这个问题的方法不止一种。但是假设我正在构建基于MVC原则的非常基本的应用程序,DAL的位置在哪里?对我来说,
模型
似乎是正确的位置,从我读到的等等。但我想确定一下。我刚才提到了存储库模式,但这里不是这样,我想知道将它放在
模型中是否真的正确,或者最好单独创建一个项目。只要这样做,老实说,这是最好的方法。你会看到你喜欢(或不喜欢)一种或另一种方法。使用正确的工具进行重构应该是轻而易举的事(对于非商业软件来说,ReSharper是免费的(或者至少是非常便宜的)。不同的项目可能需要不同的模式或分离级别,具体取决于规模和范围。独立项目的一大优点(有时也有缺点)是每个项目都是一个不同的组件。好吧,我已经把它放在我的模型中,并继续读这本书,但我真的很喜欢学习好的实践。我知道它将以这种方式工作,但我确信有一些关于这方面的既定实践,最有可能是基于MVC模式,而且由于谷歌目前没有太大帮助,我尝试在这里找到答案。