我在我的应用程序中使用ASP.NET身份验证时遇到了错误。
不支持每个类型的多个对象集。 对象集'Identity Users'和'Users'都可以包含类型'Recommendation Platform.Models.ApplicationUser'的实例。
我在StackOverflow上看到了一些关于此错误的问题。所有问题都指向相同类型的两个DbSet
对象。但是在我的DbContext
中,没有相同类型的DbSets
。在登录期间的FindAsync()
方法中抛出异常。
if (ModelState.IsValid)
var user = await UserManager.FindAsync(model.UserName, model.Password);
if (user != null && user.IsConfirmed)
{
问题是我没有两个相同类型的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 Identity 功能相关的问题导致的?无论如何,“Users”类型是什么?我在我的应用程序中没有它...
什么可能会导致这个问题?也许与内置的 ASP.NET Identity 功能有关?不管怎样,“Users” 类型是什么?我在我的应用程序中没有它...