【问题标题】:ASP.NET MVC 4 Entity Framework Database First RepositoryASP.NET MVC 4 实体框架数据库第一个存储库
【发布时间】:2014-01-30 00:33:09
【问题描述】:
我一直在阅读Pro ASP.NET 4 和他们首先使用实体框架代码的演示应用程序。在我的项目中,我已经有了数据库。在书中他们只处理一个表,然后为它创建一个ITableNameRepository,然后将其传递给控制器的构造函数。一开始就用整个数据库的模型创建一个存储库是否正确?我应该将一个实例传递给每个控制器的IMyDataModel 构造函数吗?
【问题讨论】:
标签:
c#
asp.net
asp.net-mvc
entity-framework
repository
【解决方案1】:
接口的名字有线索。他们称它为ITableNameRepository 而不是IDatabaseNameRepository
在我的应用程序中,我传入了一个IUnitOfWork,它具有各种存储库作为属性,因此控制器都具有类似的构造函数签名,当控制器需要访问新存储库时不需要更改。
DbContext 类本身是工作单元和存储库模式的组合,DbSets 充当存储库,SaveChanges() 实现工作单元。
DbContext 或 IUnitOfWork 确实意味着控制器可以访问整个数据库 - 但通过几个存储库而不是一个大存储库。我为每个表使用一个存储库,但我看到很多人提倡“聚合根”