我有一个ASP。NET MVC应用程序,使用EF (v6)作为数据访问层。我的应用程序在IIS Express上运行良好,也可以部署到运行IIS 7.5的服务器上。问题是,当我将其部署到Azure(网站)时,我得到以下异常。
如果在代码优先模式下使用,使用T4模板为数据库优先和模型优先开发生成的代码可能无法正确工作。要继续使用"数据库优先"或"模型优先",请确保在执行应用程序的配置文件中指定了实体框架连接字符串。要使用这些从数据库优先或模型优先生成的类,请使用代码优先添加使用属性或DbModelBuilder API的任何附加配置,然后删除引发此异常的代码。
我已经搜索了网络,我确保我的连接字符串以"元数据="开始+检查我的db上下文类的构造函数,以确保它包含正确的名称(在我的情况下,它的"name=PsDataEntities"))
我的连接字符串看起来像这样:<add name="PsDataEntities" connectionString="metadata=res://*/PsDataModel.csdl|res://*/PsDataModel.ssdl|res://*/PsDataModel.msl;
provider=System.Data.SqlClient;
provider connection string="data source=SERVER_NAME;initial catalog=DB_NAME;user id=UID;password=PWD;
MultipleActiveResultSets=True;App=EntityFramework"" providerName="System.Data.EntityClient" />
有人遇到同样的问题吗?
感谢您的帮助
我又做了一些测试(比如在连接字符串中更改元数据以使用完全限定名称而不是'*'),但没有成功,然后我决定在这篇文章的帮助下以编程方式设置我的元数据(关于.csdl/.ssdl/.msl)。当部署到Azure时,应用程序现在可以正常工作。