Я пытаюсь объединить контекст моего приложения с контекстом базы данных. Я пробовал различные решения, но ни одно из них не работает для ef core 3.1.
public class AppManagerDBContext : IdentityDbContext
{
public AppManagerDBContext(DbContextOptions options) : base(options) { }
protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
{
if (!optionsBuilder.IsConfigured)
{
optionsBuilder.UseSqlServer("name=DefaultConnection");
}
}
public DbSet<BmiInformation> BmiInformation { get; set; }
public DbSet<WorkOuts> WorkOuts { get; set; }
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
modelBuilder.Entity<BmiInformation>().ToTable("BmInformation");
}
}
Это полная ошибка, которую я получаю. Я думал, что все, что мне нужно сделать, это унаследовать от IdentityDbContext
. Есть ли что-то еще, что мне нужно сделать в .NET Core 3.1 и EF Core?
Add-Migration MyFirstMigration -Context AppManagerDBContext
Build started...
Build succeeded.
Ошибка
Конструктор AppManagerDBContext должен быть DbContextOptions. При регистрации нескольких типов DbContext убедитесь, что конструктор для каждого типа контекста имеет параметр DbContextOptions, а не неуниверсальный параметр DbContextOptions.
Изменить 1 Хорошо, я решил проблему со следующим, но теперь получаю новую ошибку.
Мой класс информации о пользователе
public class UserInfo : IdentityUser
{
// These two new fields are added here
[PersonalData]
public string Name { get; set; }
[PersonalData]
public DateTime DOB { get; set; }
}
Ошибка 2
Тип объекта IdentityUserLogin требует определения первичного ключа. Если вы намеревались использовать тип сущности без ключа, вызовите HasNoKey ().