Подтвердить что ты не робот

Идентификатор ASP.NET - несколько наборов объектов для каждого типа не поддерживаются

У меня возникла ошибка с использованием ASP.NET Identity в моем приложении.

Несколько наборов объектов для каждого типа не поддерживаются. Наборы объектов "Пользователи идентичности" и "Пользователи" могут содержать экземпляры типа 'Рекомендация 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? В любом случае, что такое тип пользователей? У меня его нет в моем приложении...

4b9b3361

Ответ 1

У вас есть два DbSet s` того же типа.

IdentityDbContext<T> сам содержит свойство Users, объявленное как:

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

Вы объявляете второй в своем классе.

Ответ 2

просмотрите этот файл "ApplicationDbContext.cs", удалите строку, созданную автоматически последним, должны выглядеть следующим образом:

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