Я также искал эту опцию, используя модель EF сначала с EF 4.0. Я также хотел начать с небольшой чистой модели, потому что у нас есть огромное приложение уровня предприятия, в которое мы не можем импортировать все в один edmx, потому что оно даже не отображается из-за масштаба нашей базы данных.
Итак, мы хотели сначала рассмотреть модель как вариант для построения более мелких и чистых моделей, а затем отобразить их в наших существующих таблицах в нашей базе данных.
Это то, что мы узнали.
Модель сначала генерирует схему БД, которая войдет в «существующую БД». Это несколько вводит в заблуждение изначально, потому что люди думают, что это создает новый БД. Это на самом деле не создает саму БД. БД должна существовать, а затем модель сначала генерирует сценарии t-sql, которые войдут в БД.
Он генерирует эти сценарии в новом файле .sql в вашем проекте, который затем можно просмотреть или отправить в dba, если он у вас есть.
Он будет генерировать эти сценарии как CREATES для таблиц, предполагая, что ваши таблицы не существуют.
Так, например, если вы создали в модели сущность «Клиент», она сгенерирует файл сценария (* .sql), содержащий CREATE TABLE T-sql для создания таблицы покупателя для вашей сущности покупателя, которую вы можете затем запустите существующую базу данных sql.
Так что это то, для чего он предназначен, генерировать чистые таблицы для новой модели.
Значит ли это, что вы не можете использовать его вообще, если ваши таблицы уже существуют? Нет, ты можешь использовать это. Вы просто не будете запускать сценарии Create, которые он генерирует. Я не верю, что это было действительно разработано для этого, но мы проверили это, и это работало.
Там, где вы можете столкнуться с дополнительными проблемами в первую очередь с моделью, и мы обнаружили ограничение: поскольку модель в первую очередь предназначена для генерации новой схемы БД, вы не можете отобразить существующие хранимые процедуры. Это было проблемой для нас, поэтому мы сначала исключили модель в качестве опции для нашей архитектуры.
Мы рассматриваем сначала код и сначала базу данных в качестве вариантов для системы уровня предприятия, и сейчас мы сейчас склоняемся к коду в первую очередь. Сначала код позволяет вам создавать небольшие управляемые контексты, с которыми вы можете работать, и это кажется очень полезным в приложениях большого уровня предприятия.