11 мая 2012 г., 23:50 отGert ArnoldDiego

Entity Framework - файлы CSDL, SSDL и MSL

Я просто привередлив, но я изучал, как Entity Framework генерирует DLL из файла EDMX, и я увидел это на msdn:

The Entity Data Model Designer (Entity Designer) stores model and mapping information in an .edmx file at design time. At build time the Entity Designer uses the information in an .edmx file to create the .csdl, .ssdl, and .msl files that are needed by the Entity Framework at runtime.

Я на самом деле нашел странным то, что "во время сборки" .csdl, .ssdl и .msl созданы, поэтому я решил проверить. Я знаю, что файлы создаются на основе потока TablePerTypeStrategy.xaml, поэтому я удалил его и попытался построить приложение. Это удалось.

Когда я выбрал & quot; создать базу данных из модели & quot; Я получил сообщение о том, что файл TablePerTypeStrategy.xaml отсутствует. Поэтому я запутался, очевидно, что из этого теста генерируется поколение, когда я пытаюсь сгенерировать базу данных, а не создавать приложение.

Что мне здесь не хватает?

Ответы на вопрос(2)

11 мая 2012 г., 13:21 отDave Swersky

.ssdl, .msl) создаются во время сборки и внедряются как ресурсы в сборку для использования классами Entity Framework во время выполнения. Генерация базы данных из модели - это другой процесс, который генерирует сценарий создания базы данных.

25 дек. 2016 г., 04:28 отRBT

* .ssdl, * .msl, то сначала соберите свой проект один раз. Теперь нажмите кнопку «Показать все файлы» в обозревателе решений (показана красной стрелкой) после выбора проекта (содержащего файлы edmx), как показано на снимке ниже.

Структура каталогов говорит это какobj\x86\Debug\edmxResourcesToEmbed. Все специфичные для Entity Framework XML-файлы создаются во время сборки, как их можно увидеть вobj папку и встроены в качестве ресурса.

У меня было два файла EDMX в моем проекте, а именноEFCoding.edmx а такжеModel1.edmx так что вы видите два соответствующих набора файлов каждого типа. Надеюсь, что это мнение кому-то поможет.

Заметк: Все эти метаинформационные файлы EF также можно просто скопировать в выходной каталог проекта (вместо их встраивания), просто настроив свойство для дизайнера модели EF, как было предложеноВо.

ВАШ ОТВЕТ НА ВОПРОС