I realise that this has been asked a number of times but I just can't seem to get the bottom of my issue. I'm getting the following error stack:
When I reflect out my dll I can see the following
Reading http://blogs.teamb.com/craigstuntz/2010/08/13/38628/ it suggests I'd expect to see the csdl, msl and ssdl files here, but they're not. They do exist here obj\Debug\edmxResourcesToEmbed though.
Never-the-less I tried to explicitly tell the web.config where to look by doing this:
...connectionString="metadata=res://DllName.dll/PaymentModel.csdl|res://DllName.dll/PaymentModel.ssdl|res://DllName.dll/PaymentModel.msl;provider=System.Data.SqlClient;provider ... />
Which just throws an error saying it cannot find the dll:
Unable to resolve assembly 'DllName.dll'.
Very similar to this unresolved SO question Unable to resolve assembly Model.dll
The final thing I tried was to change the metadata line to:
...connectionString="metadata=res://*/;provider=System.Data.SqlClient;provider ... />
This threw a message about sql ce which I'm not using - is there a way to get round this??
Is there anything else I can try? Or can anyone see where I'm going wrong? Some extra detais:
Using EF 6 EDMX set to "Embedded Resource"
Copy to output directory:"Do not copy"
- Metadata artifact processing: "Embed in output assembly"
Finally on this - if I set the EDMX from Embedded Resource to EntityDeploy then this will work locally but not build on the build server as it throws the exact same error as this SO question:
Could not find the Conceptual Schema node to embed as a resource for input file
But the fix doesn't seem to help and I can't install .NET 4.5 on the server unfortunately.
I was getting the same error. My connection string was as following
I changed it to following and it fixed the problem
I have had the same problem. After moving .edmx file with EF model to separate assembly mentioned error caused my headache: "Unable to load the specified metadata resource".
EF version 6.1
Solution:
Old value:
New value:
Initially .edmx was under project's folder and I have moved it into project's root.
I've hit this several times when moving between development machines after pulling down code from source control. I usually just have to explicitly rebuild the project with the EDMX file in it.
I was having the same issue
It turned out the Connection string which was generated earlier had all the edmx's name on it. I took out all the model names from the connection string leaving only the below string in my metadata
This worked for me.
I actually received this identical error because my
Entity Framework
connection string was pointing to a valid database however it was the incorrrect database.If you have the following instances in SQL Server:
Make sure that the connection string points to the same database that the
.EDMX
is wired up to and was generated from. Seems obvious enough, but when copyingEF
connection settings from 1 project to another this error was made and the net result was theUnable to load the specified metadata resource
message. Once I used the correct connection string pointing to the correct database and assembly - the error was resolved.The easiest thing to do is take the original connection string created in the
.config
file residing next to the.EDMX
and copy where needed to make sure subtle or minor omissions/mistakes are not made causingEF
to not load/connect correctly.I am sharing my code with another developer and he had this problem.No connection string differences. All the files OK... I fixed it by setting
This worked, I assume, because the individual files (CSDL/MSL/SSDL files) were created in the output directory when it used "copy to output directory". Apparently there was a bug that required them for the embedded version to work. Hope this helps :)