I got an error using ASP.NET Identity in my app. Multiple object sets per type are not supported. The object sets 'ApplicationRoles' and 'Roles' can both contain instances of type 'XXX.Identity.ApplicationRole'.
我在 stackoverflow 中看到了一些关于此错误的问题。全部表示同一类型的两个 DbSet 对象。但在我的 DbContext 中,没有相同类型的 DbSet。
当我想要启用自动迁移时抛出异常
我的上下文看起来像这样:
public class XXXDbContext :
IdentityDbContext<ApplicationUser, ApplicationRole, int, ApplicationUserLogin, ApplicationUserRole, ApplicationUserClaim>
{
public override IDbSet<ApplicationUser> Users { get; set; }
public DbSet<ApplicationUserLogin> ApplicationUserLogins { get; set; }
public DbSet<ApplicationUserRole> ApplicationUserRoles { get; set; }
public DbSet<ApplicationUserClaim> AppApplicationUserClaims { get; set;
public DbSet<ApplicationRole> ApplicationRoles { get; set; }
public DbSet<ApplicationAction> ApplicationActions { get; set; }
public DbSet<ApplicationActionRole> ApplicationActionRoles { get; set; }
}
最佳答案
检查您的 IdentityDbContext,ApplicationRoles 已经定义,可能看起来像这样:
public System.Data.Entity.DbSet<ApplicationRoles> Roles{ get; set; }
删除那个,这个错误是在ApplicationRoles在XXXcontext中再次声明时出现的......
关于c# - ASP.NET Identity - 每种类型多个对象集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41823164/