Ошибка была сгенерирована для предупреждения
'Microsoft.EntityFrameworkCore.Migrations.PendingModelChangesWarning':
В модель контекста «ContextoDb» ожидаются изменения. Добавьте новую
миграцию перед обновлением базы данных. Это исключение можно
подавить или зарегистрировать, передав идентификатор события
'RelationalEventId.PendingModelChangesWarning' методу
'ConfigureWarnings' в 'DbContext.OnConfiguring' или
'AddDbContext'.< /p>
Теперь первое, что я сделал, это просто попытался отменить мою последнюю миграцию, который только добавил некоторые данные раздачи в таблицу IdentityRole, которая автоматически генерируется через Identity.EntityFrameworkCore, теперь я создал, сначала перенес таблицу с контекстом и всем остальным, а затем понял, что мне нужны некоторые данные раздачи, чтобы работать так, как я хотел в контроллеры.
Поэтому я просто добавил:
Код: Выделить всё
var roles = new List
{
new IdentityRole
{
Name = "Admin",
NormalizedName = "ADMIN"
},
new IdentityRole
{
Name = "User",
NormalizedName = "USER"
}
};
modelBuilder.Entity().HasData(roles);
Я пробовал просто отменить все мои миграции и удалить папку миграций.
Когда это не сработало, я попробовал сделать это с совершенно другим БД. Размышление Возможно, это как-то связано с попыткой реализовать сеялку после создания таблицы.
Но это тоже не сработало. Теперь я понимаю, что в сообщении об ошибке указано, что я могу игнорировать это предупреждение. Что я и сделал. Добавляю:
Код: Выделить всё
protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
{
optionsBuilder.ConfigureWarnings(warnings =>
warnings.Ignore(RelationalEventId.PendingModelChangesWarning));
}
p>
Итак, если кто-нибудь знает, почему появляется эта ошибка. Любой способ исправить это более безопасным способом, я был бы более чем рад узнать об этом.
Если это что-то значит, то это полный AppContext:
Код: Выделить всё
public class ContextoDb : IdentityDbContext
{
public ContextoDb(DbContextOptions options) : base(options)
{
}
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
modelBuilder.Entity
().HasIndex(p => p.Carnet).IsUnique();
modelBuilder.Entity().HasData(
new Persona
{
Id = 1,
Nombre = "Ismael",
Apellido = "Moron",
Carnet = "12597382"
}
);
modelBuilder.Entity().HasData(
new Hijo
{
Id = 1,
Nombre = "Poto",
FechaNacimiento = DateOnly.Parse("2020-10-21"),
PersonaId = 1
}
);
var roles = new List
{
new IdentityRole
{
Name = "Admin",
NormalizedName = "ADMIN"
},
new IdentityRole
{
Name = "User",
NormalizedName = "USER"
}
};
modelBuilder.Entity().HasData(roles);
base.OnModelCreating(modelBuilder);
}
protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
{
optionsBuilder.ConfigureWarnings(warnings =>
warnings.Ignore(RelationalEventId.PendingModelChangesWarning));
}
public DbSet Personas { get; set; }
public DbSet Hijos { get; set; }
}
>
Подробнее здесь: https://stackoverflow.com/questions/792 ... geswarning