我一直在使用ASP和实体框架在本地开发与数据库交互的应用程序。我正在使用模型优先方法。我想将此应用程序部署到Azure,但始终收到错误“不支持关键字:'元数据”。
通过搜索和阅读如下信息:Windows Azure, Entity Framework. Keyword not supported: 'metadata'.
我知道它与我的连接字符串有关,但是我不知道自己在做什么错。
我的本地Web配置中的连接字符串:
<add name="BeCivicData" connectionString="metadata=res://*/Models.BeCivicData.csdl|res://*/Models.BeCivicData.ssdl|res://*/Models.BeCivicData.msl;provider=System.Data.SqlClient;provider connection string="data source=.;initial catalog=BeCivic;integrated security=True;multipleactiveresultsets=True;application name=EntityFramework"" providerName="System.Data.EntityClient" /></connectionStrings>
Azure DB的生成的连接字符串:
Server=tcp:becivicserver.database.windows.net,1433;Initial Catalog=BeCivic;Persist Security Info=False;User ID={MyID};Password={MyPass}5;Encrypt=True;TrustServerCertificate=False;Connection Timeout=30;
在“ Azure应用程序设置”页面上,我已将连接字符串定义为以上两者均无效,因此我尝试将它们合并以具有EF元数据(如下所示),但使用Azure连接字符串,这也为我提供了元数据错误:
metadata=res://*/Models.BeCivicData.csdl|res://*/Models.BeCivicData.ssdl|res://*/Models.BeCivicData.msl;provider=System.Data.SqlClient;provider connection string="Server=tcp:becivicserver.database.windows.net,1433;Initial Catalog=BeCivic;Persist Security Info=False;User ID={myid};Password={mypass}5;MultipleActiveResultSets=False;Encrypt=True;TrustServerCertificate=False;Connection Timeout=30;" " providerName="System.Data.EntityClient"
在我的应用程序中,EF .edmx文件位于名为Models的文件夹中。
分别成功部署了数据库元素和代码元素以成功地蔚蓝化,现在我只需要将它们链接起来。
答案 0 :(得分:0)
不支持关键字:元数据
当您尝试在Azure Portal Connection Strings
设置中使用连接字符串时,将出现上述错误。
您可以参考此article进行故障排除。
为避免自己自己解析连接字符串,可以使用EntityConnectionStringBuilder
类来解析字符串并从其ProviderConnectionString属性中检索数据库连接字符串。