Исключение метаданных структуры сущности - нет ресурсов csdl, ssdl, msl в dll

У меня есть DAL (модель первой сущности платформы 4.1) и служба, которая использует его в отдельных проектах. Все работало нормально, но после некоторых небольших изменений (например, я сгенерировал модель из базы данных) она перестала работать. Теперь я получаю исключение метаданных. После многих часов исследований я скачал ILSpy и проверил, что внутри DAL.dll нет ресурсов. Моя строка подключения выглядит так:

metadata=res://*/DataModel.TerminalRegistryModel.csdl|
         res://*/DataModel.TerminalRegistryModel.ssdl|
         res://*/DataModel.TerminalRegistryModel.msl;

ANd в обработке артефактов метаданных файла EDMX имеет значение «Вставить в выходную сборку». Что может вызвать мою проблему?

 Mike Bailey24 апр. 2013 г., 14:31
Я недавно столкнулся с этой проблемой. В моем решении локальные сборки имеют встроенные ресурсы метаданных. Но в автоматизированных сборках ресурсы отсутствуют.

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

Стандартная строка метаданных выглядит следующим образом:
metadata=res://*/Model.csdl|res://*/Model.ssdl|res://*/Model.msl
И это прекрасно работает в большинстве случаев. Однако в некоторых Entity Framework запутывается и не знает, в какую DLL искать. Поэтому измените строку метаданных на:
metadata=res://nameOfDll/Model.csdl|res://nameOfDll/Model.ssdl|res://nameOfDll/Model.msl

 14 янв. 2015 г., 19:17
@PeterX Да, вам нужно указать полное имя сборки.
 14 янв. 2015 г., 06:53
Нужно ли включать & quot; .dll & quot; расширение в "nameOfDll"?

Ваш ответ на вопрос