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

4

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

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

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

Я недавно столкнулся с этой проблемой. В моем решении локальные сборки имеют встроенные ресурсы метаданных. Но в автоматизированных сборках ресурсы отсутствуют. Mike Bailey

Ваш Ответ

1   ответ
2

Стандартная строка метаданных выглядит следующим образом:
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

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

Похожие вопросы