使用 EF 上传到 Azure 后出现 Unable to load the specified metadata resource 错误

Issue after uploading to azure with EF Unable to load the specified metadata resource error

我正在使用 ASP.net MVC5 应用程序和 EF 5 模型优先方法。但也使用了 poco 类,它在另一个名为 "Entity".

的 C# 项目中

我有多层架构,其中 Edmx 文件在 DAL 层中,BAL 引用它,BAL 和实体项目在主 Web 项目中引用。

一切正常,但在 Azure 上设置数据库和项目后,当我的站点尝试连接数据库时,它抛出以下错误 "MetadataException: Unable to load the specified metadata resource"

我被一个问题困了两天,并尝试了 Whosebug 或任何其他博客中提供的所有可能的解决方案。但是请相信我,没有什么比在元数据中给出装配的完整路径、dll 更能解决我的问题了。使用 "metadata=res://*/; 对我也没有用。我在这里压力很大。

请帮助我。 web.config 中的屏幕截图和连接字符串已附上。

<add name="questmysqlEntities" connectionString="metadata=res://QuestCloud/QuestCloudDAL/QuestCloud.csdl|res://QuestCloud/QuestCloudDAL/QuestCloud.ssdl|res://QuestCloud/QuestCloudDAL/QuestCloud.msl;provider=System.Data.SqlClient;provider connection string=&quot;Data Source******servername****;Initial Catalog=questdb;Persist Security Info=True;user id=****username****;password=****password****;MultipleActiveResultSets=True;application name=EntityFramework&quot;" providerName="System.Data.EntityClient" />

我的 Edmx 文件驻留在 DAL(数据库层)项目中,而 POCO 模板驻留在实体项目中,

BAL(业务层)引用了两个项目

我的 Web 项目引用了 BAL(业务层)和实体项目

我得到了上述问题的解决方案。我刚刚将“QuestCloudDAL.dll”的引用添加到我的主项目 QuestCloud 中。并将此程序集的引用放在我的主要 web.config 作为,

 <add name="questmysqlEntities" connectionString="metadata=res://QuestCloudDAL/QuestCloud.csdl|res://QuestCloudDAL/QuestCloud.ssdl|res://QuestCloudDAL/QuestCloud.msl;provider=System.Data.SqlClient;provider connection string=&quot;Data Source******servername****;Initial Catalog=questdb;Persist Security Info=True;user id=****username****;password=****password****;MultipleActiveResultSets=True;application name=EntityFramework&quot;" providerName="System.Data.EntityClient" />

而不是“*”,我在 we.config 连接字符串中放置了元数据资源的“QuestCloudDAL”命名空间。它按预期工作。