Code First не подходит для крупномасштабных приложений. Оборот разработки крупных приложений очень велик.
Обычно жизненный цикл вашего бизнес-приложения такой:
- Версия 1 находится в производстве
- Версия 2 находится в бета-версии
- Версия 3 находится в активной разработке
- Версия 4 находится в планировании.
Есть и другие мосты связи между приложениями, некоторые запланированные задачи, сторонняя интеграция, веб-сервисы для различных устройств связи, таких как мобильные устройства и т. Д.
В конце концов Code First использует ObjectContext Entity Model, более старый EF, генерирующий EDMX и использующий ObjectContext с EntityObject, был действительно достаточным для всего. Вы можете легко настроить текстовый шаблон для генерации кода. Метод обнаружения изменений медленнее с реализацией ObjectContext, но вместо генерации прокси команда EF могла бы легко улучшить скорость обнаружения изменений вместо того, чтобы сначала изобретать код.
Автоматизированная миграция
Автоматическая миграция звучит хорошо в теории, но невозможно на практике, когда вы начинаете жить. Это хорошо только для создания прототипов, разработки некоторых быстрых демонстраций.
Code First Migration совсем не подходит в такой системе. Версия 1 и версия 2, скорее всего, общаются с одной и той же базой данных. Версия 3 и версия 4 обычно являются промежуточными и имеют разные базы данных.
База данных сначала
Database First - это практичный подход, его легко сравнивать, визуализировать и поддерживать сценарии SQL. Администраторы баз данных могут работать легко.
Текстовые шаблоны
Мы создали наши собственные текстовые шаблоны для запросов и создания EDMX и ObjectContext с небольшой пользовательской реализацией, которая решает проблемы производительности. Есть несколько приложений с несколькими версиями, связывающимися с одной и той же базой данных без каких-либо проблем.
Для меня, щелкнув правой кнопкой мыши по файлу .tt и выбрав «Запустить пользовательский инструмент», это самый быстрый и простой шаг, чем написание классов, настройка и создание модели.