不支持Azure部署实体框架连接字符串关键字:'元数据'

时间:2018-10-14 01:26:47

标签: entity-framework azure deployment azure-sql-database azure-web-sites

我一直在使用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=&quot;data source=.;initial catalog=BeCivic;integrated security=True;multipleactiveresultsets=True;application name=EntityFramework&quot;" 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的文件夹中。

分别成功部署了数据库元素和代码元素以成功地蔚蓝化,现在我只需要将它们链接起来。

1 个答案:

答案 0 :(得分:0)

  

不支持关键字:元数据

当您尝试在Azure Portal Connection Strings设置中使用连接字符串时,将出现上述错误。

因此,尝试将类型从SQLAzure更改为Customenter image description here

您可以参考此article进行故障排除。

为避免自己自己解析连接字符串,可以使用EntityConnectionStringBuilder类来解析字符串并从其ProviderConnectionString属性中检索数据库连接字符串。