Entity framework 6 将asp.net 5 MVC 6与Identity和EF 6一起使用的示例
我正在使用asp.NET5和MVC6建立一个新项目,但是我想使用EntityFramework6,因为EF7中缺少一些特性 我设置了EF 6.1.3,它正在工作 标识3.0依赖于EF 7,因此我已将其删除并在标识2.2中引用Entity framework 6 将asp.net 5 MVC 6与Identity和EF 6一起使用的示例,entity-framework-6,asp.net-core,asp.net-identity-2,Entity Framework 6,Asp.net Core,Asp.net Identity 2,我正在使用asp.NET5和MVC6建立一个新项目,但是我想使用EntityFramework6,因为EF7中缺少一些特性 我设置了EF 6.1.3,它正在工作 标识3.0依赖于EF 7,因此我已将其删除并在标识2.2中引用 但我不确定从这里走到哪里。这有几个部分 您可以使用Microsoft.AspNet.Identity3.0.0,但需要创建自己的UserStore和RoleStore。就我个人而言,我复制了和的源代码,并对使用我的EF6用户和角色类进行了必要的调整。它们有一些默认情况下在E
但我不确定从这里走到哪里。这有几个部分
Microsoft.AspNet.Identity
3.0.0,但需要创建自己的UserStore
和RoleStore
。就我个人而言,我复制了和的源代码,并对使用我的EF6用户和角色类进行了必要的调整。它们有一些默认情况下在EF6中未使用的附加功能,例如规范化您需要支持(或解决)的用户名、电子邮件地址和角色名,但是这些接口只需要POCO,因此您在那里会做得很好services.AddIdentity()
.AddRoleStore()
.AddUserStore();
我不确定在ASP.NET 5的最终版本中将如何处理此问题,但在ASP.NET 5 RC1的情况下,我们有以下几点: 首先,您应该使用Identity 3.0,因为据我所知,在MVC6中无法使用Identity 2.x 其次,要使Identity 3.0与EF6协同工作,您需要在Microsoft.AspNet.Identity.EntityFramework命名空间下实现自己的所有类的“EF6友好”版本(代码可在此处找到-),因为原始类只能与EF7协同工作:
- IdentityDbContext
- 罗莱斯托尔
- 用户商店
- 识别管
- 同一分子
- 识别码
- 身份声明
- 标识用户登录
- 身份服务器角色
为1.0.0编辑:现在支持1.0.0
为RC2编辑:现在支持RC2
最好的做法是将Identity的EF7提供商移植到EF6上 对于一个已经完成的端口,请检查在Asp.Net核心(5)下工作的Identity 3.0+EF6: 如果您还需要EF6迁移,请查看我的其他答案。是一个很小的包装器,它将ASP.NET EntityFrameowork 6移植到ASP.NET核心标识,只需一个小文件 它的作用是,将EF6现有的
UserStore
封装在新的不可知ASP.NET核心IUserStore
中
对
TKey
的支持变得很容易。祝你好运,在谷歌上找到这个@ShoaibShakeel的资料。我正在调查这个问题,你也有进展吗?@Hexxagonal如果你还在寻找这个问题,请查看我的答案。你有任何关于这个设置是如何创建的报告吗?身份3与EF6。不幸的是,没有公开。我考虑过制作一个GitHub项目和软件包,但除了您自己可能需要的定制(例如使用用户名作为电子邮件地址)之外,实际上没有太多其他内容。欢迎使用Identity 3.0和EF6来此寻求建议的任何人。这种方法是可行的,但它也要求您用自己的非泛型类完全替换IdentityUser、IdentityUserClaims等类。问题是EF6不支持映射泛型,Identity 3.0代码源广泛支持映射泛型。我遵循了您的代码,但在尝试激活“ApplicationUserStore”时出现错误,因为无法解析类型为“ApplicationDbContext”的服务。
有什么想法吗。