Я работаю над альтернативой библиотеке EF.Migrations - EntityFramework.SchemaCompare . Это позволяет физически сравнивать схему БД с моделью сущностей, представляющей контекст базы данных (EF.Migrations не делает этого). Это может быть запущено либо во время инициализации базы данных, либо вручную по запросу. Рассмотрим следующий пример
#if DEBUG
Database.SetInitializer(new CheckCompatibilityWithModel<DatabaseContext>());
#endif
При инициализации базы данных будет выдано исключение, описывающее различия между схемой БД и моделью при обнаружении проблем несовместимости. В качестве альтернативы вы можете найти эти различия в вашем коде в любое время следующим образом
using (var ctx = new DatabaseContext())
{
var issues = ctx.Database.FindCompatibilityIssues();
}
Затем, имея на руках эти различия / проблемы несовместимости, вы можете обновить схему БД или модель.
Этот подход особенно полезен, когда вам нужен полный контроль над схемой базы данных и дизайном модели и / или работа в команде, где несколько членов команды работают над одной и той же схемой и моделью БД. Может также использоваться в дополнение к EF.Migrations.
Разбуди меня на GitHub: https://github.com/kriasoft/data