我知道这个问题已经被问了很多次,但我似乎无法解决我的问题。 我得到了以下错误堆栈:
当我反射我的dll时,我可以看到以下内容
阅读http://blogs.teamb.com/craigstuntz/2010/08/13/38628/建议我应该在这里看到csdl、msl和ssdl文件,但它们不存在。 不过,它们确实存在于 obj\Debug\edmxResourcesToEmbed 中。
尽管如此,我仍然尝试通过执行以下操作显式地告诉web.config在哪里查找:
...connectionString="metadata=res://DllName.dll/PaymentModel.csdl|res://DllName.dll/PaymentModel.ssdl|res://DllName.dll/PaymentModel.msl;provider=System.Data.SqlClient;provider ... />
代码抛出错误,指出无法找到dll文件:
无法解析程序集 'DllName.dll'。
与这个未解决的SO问题非常相似 Unable to resolve assembly Model.dll
我最后尝试的方法是将元数据行更改为:
...connectionString="metadata=res://*/;provider=System.Data.SqlClient;provider ... />
这里出现了一个关于 SQL CE 的消息,而我并没有使用它 - 有没有办法解决这个问题?
我能尝试些什么别的吗?或者有人能看出我错在哪里吗?以下是一些额外的细节:
使用EF 6 EDMX设置为“嵌入资源”
复制到输出目录:“不复制”
- 元数据工件处理:“嵌入到输出程序集中”
最后,在将EDMX从嵌入式资源设置为EntityDeploy时,这将在本地工作,但在构建服务器上构建时会引发与此 SO 问题完全相同的错误:
Could not find the Conceptual Schema node to embed as a resource for input file
但修复似乎没有帮助,而且我不能在服务器上安装 .NET 4.5 版本。