Мы начинаем новый крупный корпоративный проект. База данных будет составлять более 100 таблиц, и мы будем использовать Entity Framework, Web API и MVC.
Мой вопрос специально связан с аспектами платформы Entity Framework. Я пытаюсь сделать выбор между следующим:
- Сначала код в существующую базу данных
- Конструктор EF для существующей базы данных (сначала база данных)
Я знаю, что мы можем использовать EF для генерации базы данных из кода сначала или из дизайнера EF, но мы предпочитаем иметь полный контроль над базой данных и развивать это традиционным способом, поэтому мы исключили опции EF, которые позволяют нам для автоматической генерации базы данных.
Большинство из того, что я могу найти в Интернете, относящееся к Code First, связано с созданием новой базы данных, а затем с использованием кодовых миграций. И когда обсуждения касаются базы данных сначала, дискуссии одобряют EF Designer. Пример здесь: Код-первый против первой модели/базы данных
Мое предпочтение заключается в том, чтобы сочетать код First с существующей базой данных.
Ниже перечислены мои соображения в пользу этого варианта, и мне интересно, есть ли что-то еще, что мне нужно учитывать, и правильны ли мои предположения/мысли.
Код сначала для существующей базы данных
- В начале будет построено большое количество классов, но мы можем сделать начальное поколение из мастера моделей EF.
- Затем классы могут быть модифицированы с помощью любых настраиваемых свойств или для удаления чего-либо, что нам не нужно, а не из конструктора EF, который потребует от нас расширения любых классов.
- Недостатком является то, что любые изменения в базе данных должны быть добавлены вручную в наши классы, в отличие от использования конструктора, который позволит легко обновить.
Изменить: Кажется, я был в замешательстве в этой области. Из чтения видно, что правильный способ Data Data состоит в том, чтобы создать частичные классы для всех созданных автоматически классов, а затем внести какие-либо изменения в частичные классы как часть уровня "бизнес". Поэтому моя мысль изменилась с того, что вы предпочитаете Code First from Database, использовать EF Designer для существующей базы данных и затем создавать частичные классы.