ASP.NET身份 – 不支持每种types的多个对象集

我在我的应用程序中使用ASP.NET身份发生错误。

不支持每种types的多个对象集。 对象集“身份用户”和“用户”都可以包含“推荐Platform.Models.ApplicationUser”types的实例。

我在stackoverflow中看到了一些关于这个错误的问题。 全部在相同types的两个DbSet对象上指示。 但是在我的DbContext中,不存在相同types的DbSets。 FindInync()方法在login期间引发的exception。

if (ModelState.IsValid) var user = await UserManager.FindAsync(model.UserName, model.Password); if (user != null && user.IsConfirmed) { 

问题是我没有相同types的两个DbSets。 我的上下文看起来像这样:

 public class ApplicationDbContext : IdentityDbContext<ApplicationUser> { public ApplicationDbContext() : base("DefaultConnection") { } public System.Data.Entity.DbSet<RecommendationPlatform.Models.ApplicationUser> IdentityUsers { get; set; } } 

 public class RecContext : DbContext { public RecContext() : base("RecConnection") { Database.SetInitializer<RecContext>(new DropCreateDatabaseIfModelChanges<RecContext>()); } public DbSet<Recommendation> Recommendations { get; set; } public DbSet<Geolocation> Geolocations { get; set; } public DbSet<Faq> Faqs { get; set; } public DbSet<IndexText> IndexTexts { get; set; } } 

什么可能导致这个问题? 也许与内置的ASP.NET身份function相关的东西? 无论如何,用户types是什么? 我没有在我的应用程序…

你有两个相同types的DbSet。

IdentityDbContext<T>本身包含Users属性声明为:

 public DbSet<T> Users { get; set; } 

你在class上宣布第二个。

检查这个文件“ApplicationDbContext.cs”,去掉由脚手架最后自动生成的行,应该是这样的:

 public System.Data.Entity.DbSet<Manager.Models.ApplicationUser> IdentityUsers { get; set; }