Ale*_*exB 0 asp.net-mvc asp.net-roles discriminator asp.net-mvc-5 asp.net-identity-2
我正在使用带有Identity 2框架的ASP.NET MVC5 ,数据库优先
我正在尝试AspNetRoles通过添加名为MyCustomColumn的列进行自定义
但是,我的应用程序崩溃是因为:
无效的列名称识别器
在SO和网络上的其他地方有很多资源,但大多数都使用CodeFirst方法,我不能在我的应用程序中使用它们.
怎么处理呢?
实际上,这都不是必要的.很可能您无法更新要继承的上下文IdentityDbContext<TUser,?TRole,?TKey,?TUserLogin,?TUserRole,?TUserClaim>,而不是默认值IdentityDbContext<TUser>.由于您未将自定义角色实体作为TRole类型参数传递,因此上下文将IdentityRole用作类类型.然后它创建一个表IdentityRole,看到你的自定义角色继承IdentityRole,并因此添加Discriminator列,以便它可以告诉IdentityRole数据库中的实例和自定义角色之间的不同(单表继承是EF使用的默认策略) ).
这在技术上可行,但您的自定义角色永远不会被实际使用.使用正确的通用抽象上下文类,你会没事的.
对于它的价值,你也应该取消EDMX的东西.它已被弃用,错误和不必要.尽管名称如此,"Code First"可以与现有数据库一起使用或创建新数据库.
别
public class ApplicationDbContext : IdentityDbContext<ApplicationUser>
Run Code Online (Sandbox Code Playgroud)
做
public class ApplicationDbContext : IdentityDbContext<ApplicationUser, CustomRole, string, IdentityUserLogin, IdentityUserRole, IdentityUserClaim>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1740 次 |
| 最近记录: |