Изменения, которые вы описываете, и которые легко могут быть использованы или использованы разработчиком EF. Продолжайте вносить изменения в вашу базу данных. После этого вы можете просто щелкнуть правой кнопкой мыши на поверхности конструктора EF и выбрать обновление вашей модели EF из базы данных.
Более сложной задачей будет перестройка вашей бизнес-логики в соответствии с новой моделью данных. Те сущности / таблицы и свойства / атрибуты, которые были удалены / изменены, будут выделены в Visual Studio, и вам придется посетить каждую из этих строк кода, чтобы исправить их. Это может быть в вашем DAL / Repository и в любых сборках, которые ссылаются на вашу модель EF.
Для этих новых таблиц / сущностей и атрибутов или типов данных вы можете просто включить их и сразу же начать использовать в своем коде.
Чтобы понять, как это будет работать, попробуйте изменить одну вещь (удалить сущность / таблицу или изменить тип данных) и выполнить шаги, которые я описал. В зависимости от вашего допуска к нескольким изменениям, подумайте о том, чтобы потратить больше времени на управление изменениями модели данных по одному.
Есть ли у EF механизмы или "лучшие практики", которые позволяют нам согласовывать BL с новой моделью?
Я не уверен, что понимаю ваше намерение «привести BL в соответствие с новой моделью». Не существует автоматизированных способов «исправить код, чтобы приспособить сущности к новому облику». Вы просто увидите ошибки компилятора.
Если вы спрашиваете о том, как защитить от изменений БД, я бы сказал, что это архитектурное решение, которое вы принимаете в приложении, и в нем нет BP. Учитывая, что EF - это ORM, некоторые разработчики предлагают использовать / использовать сущности, которые EF создает для вас. Некоторые разработчики предлагают использовать их и создать partial class
для расширения своего поведения (новые методы или свойства отделены от базы данных). Некоторые разработчики хотят создать совершенно новый набор классов и объектную модель, чтобы представить или сделать классы более похожими на реальный мир, а не на то, как база данных хочет структурировать модель данных. Затем они продолжают создавать код отображения между объектами EF и их собственными классами POCO - переводя между каждой версией.
Мое предложение по этому вопросу: используйте классы ORM для ваших таблиц / сущностей и расширяйте их поведение и данные частями, если / когда это необходимо.