Я поддерживаю это приложение (A), которое пишет в таблицу другого приложения (B). Проблема в том, что A пишет во многие B и что модели изменились в более новых версиях B.
Пример: A имеет сущность Dog со столбцами: имя, возраст, пол
В большинстве случаев B этот объект соответствует таблице. Но самая новая версия B Dog имеет столбцы: Имя, Возраст, Пол, FavoritFood (который не допускает нулевые значения)
Я не могу изменить схему базы данных B, ни из кода, ни с сервера sql , Если я сделаю это, B просто переделает его под свои нужды. Я могу изменить сущность Dog в A, но для этого потребуется различие между более новыми и более старыми версиями B.
A использует Entity Framework 6.2 в качестве ORM.
До сих пор моя идея заключалась в следующем: Проверьте, существует ли столбец, если не игнорируйте поле.
protected override void OnModelCreating(DbModelBuilder builder) {
base.OnModelCreating(builder);
if (!Database.CompatibleWithModel(true)) {
builder.Entity<Dog>().Ignore(_ => _.FavoritFood);
}
}
Я не только не могу получить доступ к контексту из OnModelCreating. Я также считаю, что этой возможности не хватает, поскольку она очень общая c и Я хотел бы проверить специально для столбца FavoritFood.
Как я могу выполнить sh это?