我最近学习了ASP.NET MVC(我喜欢它).我正在与一家使用依赖注入的公司合作,在每个请求中加载Repository实例,我熟悉使用该存储库.
但现在我正在编写自己的几个MVC应用程序.我不完全理解我公司使用的存储库的方法和原因,我正在尝试确定实现数据访问的最佳方法.
我正在使用C#和Entity Framework(包含所有最新版本).
我看到了处理数据访问的三种通用方法.
每次访问数据时,using语句中的常规DB上下文.这很简单,工作正常.但是,如果两个位置需要在一个请求中读取相同的数据,则必须读取两次数据.(每个请求使用一个存储库,两个地方都会使用相同的实例,我理解第二次读取只会返回第一次读取的数据.)
典型的存储库模式.由于我不理解的原因,这种典型的模式涉及为数据库中使用的每个表创建一个包装类.这对我来说似乎不对.事实上,由于它们也是作为接口实现的,我在技术上会为每个表创建两个包装类.EF为我创建表格.我不相信这种方法是有道理的.
还有一个通用存储库模式,其中创建单个存储库类以服务所有实体对象.这对我来说更有意义.但对别人有意义吗?链接是最好的方法吗?
我很想从其他人那里得到关于这个话题的一些意见.您是在编写自己的存储库,使用上述方法之一,还是完全不同的方式.请分享.