Указание расположения файлов метаданных .csdl / .ssdl / .msl в выходной сборке - PullRequest
5 голосов
/ 21 февраля 2012

У меня есть проект EF, содержащий мою модель данных, которую я успешно использую. Для параметра «Обработка артефактов метаданных» установлено значение «Встроить в выходную сборку».

Поскольку файл .edmx находился в корневой папке проекта, строка метаданных, используемая в EntityConnectionStringBuilder, была установлена ​​на:

res://*/myProject.csdl|res://*/myProject.ssdl|res://*/myProject.msl

Когда я реструктурировал проект, я переместил файл .ecdm в подпапку: /DataLayer/myProject/ и я изменил строку метаданных на:

res://*/DataLayer/myProject/myProject.csdl|res://*/DataLayer/myProject/myProject.ssdl|res://*/DataLayer/myProject/myProject.msl

Теперь это вызывает ошибку («Указанный путь метаданных недействителен»), но я не вижу, что не так с путем к папке, который я указал в метаданных.

Я знаю, что могу просто переместить файл .ecdm обратно в корень, но у меня была эта проблема раньше, и я не мог ее исправить - есть что-то очевидное, что я упускаю?

1 Ответ

7 голосов
/ 21 февраля 2012

Я наконец-то решил это.

Папки должны быть разделены знаком '.' не '/' .

Правильный формат для метаданных:

res://*/DataLayer.myProject.myProject.csdl|res://*/DataLayer.myProject.myProject.ssdl|res://*/DataLayer.myProject.myProject.msl

Надеюсь, это спасет кого-то от удара головой о стену!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...