entity-framework – 将DbContext注入Repository类库
发布时间:2020-12-16 04:16:54 所属栏目:asp.Net 来源:网络整理
导读:我的解决方案中的项目设置如下: App.Data App.Models App.Web 在App.Data中,我使用Entity Framework通过一堆存储库访问我的数据以抽象与它的交互.出于显而易见的原因,我希望我的App.Web仅引用App.Data项目,而不是Entity Framework. 我正在使用构造函数注入
我的解决方案中的项目设置如下:
> App.Data 在App.Data中,我使用Entity Framework通过一堆存储库访问我的数据以抽象与它的交互.出于显而易见的原因,我希望我的App.Web仅引用App.Data项目,而不是Entity Framework. 我正在使用构造函数注入为我的控制器提供对如下所示的Repository容器的引用: public interface IDataRepository { IUserRepository User { get; set; } IProductRepository Product { get; set; } // ... } public class DataRepository : IDataRepository { private readonly AppContext _context; public DataRepository(AppContext context) { _context = context; } // ... } DataRepository将有一个AppContext对象(继承自Entity Framework的DbContext),所有子存储库将使用它来访问数据库. 最后我们来讨论我的问题:我如何在DataRepository上使用Constructor Injection,因为它是一个代码库并且没有入口点?我无法在App.Web中引导AppContext,因为那时我必须从该项目引用Entity Framework. 或者我只是在做一些愚蠢的事情? 解决方法
您可以在App.Data中定义RepositoryConnection类,该类充当Context的包装器,并且无需在App.Web中引用EF.如果您使用的是IoC容器,则可以控制RepositoryConnection类的生命周期,以确保Repository的所有实例都获得相同的Context.这是一个简化的例子……
public class RepositoryConnection { private readonly AppContext _context; public RepositoryConnection() { _context = new AppContext(); } public AppContext AppContext { get { return _context; } } } public class DataRepository : IDataRepository { private readonly AppContext _context; public DataRepository(RepositoryConnection connection) { _context = connection.AppContext; } // ... } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- 将配置文件appsetting中的值转换为动态对象调用
- asp.net – 在编辑模式下未选择的Html.DropDownListFor值
- asp.net-mvc – MVC ViewModel绑定构造与展平
- asp.net-mvc – 当您的视图模型没有域模型那么多字段时,如何
- asp.net-mvc – 在MVC中修改密码4
- ASP.net MVC4:在局部视图中使用不同的模型?
- 浅谈ASP.NET Core中间件实现分布式 Session
- asp.net-mvc – 在MVC/ASP.NET MVC中正确使用Model vs Cont
- asp.net-mvc – Durandal和ASP.NET MVC约定
- .net core使用sentry添加程序异常报警功能
推荐文章
站长推荐
- asp.net-core – 如何在Entity Framework Core中
- asp.net-mvc – 为什么我在带有godaddy服务器的M
- .NET MVC屏蔽密码文本框
- asp.net-mvc – 除了UI“flair”,你用什么jQuery
- asp.net – 如何在gridview中只显示日期而不是da
- 编辑asp.net razor chtml文件是否需要重新编译?
- asp.net-mvc – ASP.NET MVC – 结合Json结果与V
- asp.net-mvc-4 – @ Html.Raw坚持编码引号
- asp.net-mvc – 我的viewmodel值类型属性应该可以
- ASP.NET 存取EXCEL 使用NPOI相关小技巧
热点阅读