entity-framework – 将DbContext注入Repository类库
发布时间:2020-05-24 13:34:39 所属栏目: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;
}
// ...
} (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- asp.net-mvc – 在Azure中预编译ASP.NET MVC项目(不与Web部
- asp.net – 为什么HttpUtility.UrlPathEncode标记为“不使用
- asp-classic – 经典ASP中500 Vs 500.100错误
- asp.net-mvc – 没有控制器或操作名称的Asp.net mvc路由
- 让OData和NHibernate结合进行动态查询
- asp.net – 更改事件和IE8的jQuery问题
- asp.net – 当我禁用提交按钮以防止双击时,为什么我的表单没
- asp.net – 来自asp app的流媒体mime类型’application / p
- asp.net – 在几个网页(.cshtml文件)中使用Razor @function
- asp.net – IIS HTTP错误500.19
推荐文章
站长推荐
- ASP.net Model View Presenter是否值得时间?
- asp.net-mvc – 如何在asp.net mvc中的关系表/模
- 休息 – ASP.NET Web Api路由自定义
- jwt – ASP.NET 5 OAuthBearerAuthentication:以
- asp.net-mvc – ASP.NET MVC中的动态(运行时生成
- asp.net – OutputCache和RenderAction缓存整个页
- asp.net-mvc – 我应该每个请求使用一个HttpClie
- asp.net-mvc – Chrome34忽略域名为“.cloudapp.
- 我们可以在ASP.NET Webforms(* .aspx页面)中使用
- asp.net-mvc – 使用ASP.NET MVC 2 AsyncControl
热点阅读
