【发布时间】:2014-12-25 18:45:53
【问题描述】:
今天我需要一些关于我目前正在努力解决的问题之一的建议
我正在做一个有 3 层的项目
1) DAL
2) BAL
3) Web
4) Entities (This is a separate project which contain only the entities
that will be use to create DB tables with EF Code first)
Entities being reference in all the 3 layers
DAL being referenced in BAL and Web
BAL being referenced in Web
我想从Web 项目中获取DAL 引用,我的Web 项目通常一直与BAL 交谈。我必须引用 DAL 的唯一原因是因为 ASP.NET Identity Startup.Auth.cs 和 IdentityConfig.cs 类。每个文件都包含一行代码,需要访问我的DBContext,该代码位于我的DAL 项目中。
IdentityConfig.cs:
var manager = new ApplicationUserManager
(new UserStore<ApplicationUser>(context.Get<MyDbContext>()));
Startup.Auth.cs:
app.CreatePerOwinContext(MyDbContext.Create);
如何调整我不必在 Web 项目中引用 DAL 的内容?可以推荐一下吗
谢谢
【问题讨论】:
-
您可能会发现this question 很有用。主要思想是将您的
ApplicationUser类放在一些通用程序集中(在您的情况下为Entities)。该重构的另一个好处是您将拥有一个用于域和 ASP.NET 标识实体的DbContext。有关该主题的更多详细信息,请查看this question。 -
不幸的是,我的应用程序结构与建议的应用程序略有不同。我认为这对我来说是行不通的,直到我做出相应的改变,我不能
标签: .net asp.net-identity dbcontext