asp.net-mvc – ApplicationDbContext – 它在项目中的位置
我想在我的mvc 5应用程序中使用一个(EF)上下文文件,我想使用asp身份.
我在解决方案DAL,GUI和WebAPI中有一些项目. 我想在DAL程序集中移动ApplicationDbContext并从我的UI项目中删除EF completly. 当您启动新项目时,您使用ApplicationDbContext和asp身份做了什么? 您是将它留在UI层还是将其移动到数据层? 我真的没有经验丰富的开发人员问我希望它不会被投票. 解决方法
分离身份:
从UI中分离身份要复杂得多.在这里,微软已经如此密切地纠缠它们,以至于我建议将它留下来,直到你在专家级别理解Identity,EF和Repository Pattern. 但是,如果您有兴趣将身份与UI级别分开,这里有一个很棒的resource from Dino Esposito >注意在Account Controller的构造函数中对ApplicationDbContext的引用: public AccountController() : this(new UserManager<ApplicationUser>(new UserStore<ApplicationUser> (new ApplicationDbContext()))) 这很容易成为DAL中Context的引用. >在上下文中使用Repo会很困难.这需要重新编写UserManager,我非常怀疑你想做什么. : public class UserIdentityContext : ApplicationDbContext,IUserIdentityContext 现在,您可以使用Ninject将您的帐户控制器绑定到抽象模式 public AccountController() : this(new UserManager<ApplicationUser>(new UserStore<ApplicationUser> (IUserIdentityContext identityContext))) 但是,这些移动都不允许您从UI项目中删除EF程序集.在这里,Microsoft过于紧密地绑定了Data和UI元素.您必须重新编写帐户控制器. 这是他们正在处理的一个问题,并且可能会在MVC 6 / Identity 3中大大改进 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- asp.net-mvc-3 – MVC 3不显眼的验证 – 有条件地禁用/启用
- asp.net – 绑定ListView InsertItemTemplate中的DropDownL
- asp.net-mvc – 使用ASP.net MVC项目作为其他MVC项目的“基
- ASP.NET MVC 5从Javascript Error调用控制器方法
- asp.net-mvc – EF 4代码如何首先处理生产环境中的模式更改
- asp.net – Datatable的行计算功能
- ASP.NET MVC Web应用程序中的控制器是否应该调用存储库,服务
- asp.net验证文本框 – 至少有一个文本框必须包含数据
- asp.net-mvc – 用于大型视频文件的MVC ActionResult
- 如何在ServiceStack服务实现中使用标准的ASP.NET会话对象
- razor – 使用ActionLink将null参数传递给控制器
- asp.net-web-api – 如何在ConfigureServices方法
- entity-framework – Entity Framework 5工作单元
- asp.net-mvc-3 – DropDownListFor中的ViewBag属
- asp.net – UserPrincipal.FindByIdentity在IIS服
- asp.net-mvc-4 – 组合ASP.NET MVC4捆绑和requir
- asp.net – 在Web.config更改后程序集不可用
- asp.net – Application_End应该在自动App Pool
- ASP.NET-MVC 2 RC最佳功能
- 垃圾收集 – ASP.NET核心Web应用程序(.NET Frame