在我的 MVC5 项目中,我使用以下实现扩展了我的IdentityUser
类:DbContext
public class ApplicationDbContext : IdentityDbContext<ApplicationUser>
{
public ApplicationDbContext()
: base("DefaultConnection") { }
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
base.OnModelCreating(modelBuilder);
modelBuilder.Entity<IdentityUser>()
.ToTable("Users");
modelBuilder.Entity<ApplicationUser>()
.ToTable("Users");
}
}
使用一个ApplicationUser
类:
public class ApplicationUser : IdentityUser
{
public string EmailAddress { get; set; }
public string Name { get; set; }
public DateTime JoinDate { get; set; }
public string ConfirmationToken { get; set; }
public bool EmailIsConfirmed { get; set; }
}
但是,每当我尝试做同样的事情并扩展IdentityRole
类时,它都不起作用。如果我只是创建一个ApplicationRole
继承自的类IdentityRole
(并将IdentityRole
MVC 项目中的所有实例更改为ApplicationRole
),则不会从数据库返回任何角色。例如,使用以下
RoleManager<ApplicationRole> RoleManager = new RoleManager<ApplicationRole>(new RoleStore<ApplicationRole>(new ApplicationDbContext()));
当我调用RoleManager.Roles
.
有没有人这样做并且可以提供一些指导?
更新
我忘记更改我的 DB Seed 方法以使用我的新方法ApplicationRole
- 它仍在使用IdentityRole
. 这样做之后,我无法对我的数据库应用更新,因为我不断收到 DBValidation 错误。在改编了这篇文章中的一些代码后,我能够通过覆盖ValidateEntity
DbContext 的方法来让一切正常工作