Excepție de metadate a cadrului de entitate - Nu există csdl, ssdl, msl în resursele dll

Am DAL (modelul 4.1) și Serviciul care o utilizează în proiecte separate. Totul a funcționat bine, dar după câteva modificări minore (de exemplu, am generat un model din baza de date), a încetat să mai funcționeze. Acum primesc o excepție de metadate. După multe ore de cercetare am descărcat ILSpy și am verificat că în interiorul DAL.dll nu există resurse. Șirul meu de conectare arată astfel:

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

În procesul de prelucrare a artefactului metadatelor fișierului EDMX este setat să se încordeze în Adunarea de ieșire. Ce poate cauza problema mea?

0
Recent am abordat această problemă. În soluția mea, construcțiile locale au resursele de metadate încorporate. Dar, în construirea automată, resursele lipsesc.
adăugat autor Mike Bailey, sursa

1 răspunsuri

The standard metadata string looks like this:
metadata=res://*/Model.csdl|res://*/Model.ssdl|res://*/Model.msl
And this works fine in most cases. However, in some Entity Framework get confused and does not know which dll to look in. Therefore, change the metadata string to:
metadata=res://nameOfDll/Model.csdl|res://nameOfDll/Model.ssdl|res://nameOfDll/Model.msl

0
adăugat
@PeterX Da, trebuie să includeți numele complet al asamblării.
adăugat autor Meysam Savameri, sursa
Trebuie să includeți extensia ".dll" în "nameOfDll"?
adăugat autor PeterX, sursa