【问题标题】:How do I solve "Keyword not supported: 'metadata' "?如何解决“不支持关键字:'元数据'”?
【发布时间】:2016-04-10 16:51:40
【问题描述】:
我无法连接到 SQL Server,我的项目的连接字符串是:
<add name="Teleport_DEVEntities" connectionString="metadata=res://*/Data.Model.AdvertisingModel.csdl|res://*/Data.Model.AdvertisingModel.ssdl|res://*/Data.Model.AdvertisingModel.msl;provider=System.Data.SqlClient;provider connection string="data source=*****;initial catalog=****;integrated security=True;MultipleActiveResultSets=True;App=EntityFramework"" providerName="System.Data.EntityClient" />
我收到此错误:
不支持关键字:“元数据”
我该如何解决这个错误?
【问题讨论】:
标签:
sql
sql-server
database-connection
connection-string
【解决方案1】:
该连接字符串仅受实体框架支持。 (公平地说,关键字“entities”在键名中!)如果您想在 ADO 原始连接中使用连接字符串,请删除 &quot; 字符串部分之外的任何内容,包括 &quot;s:
改成:
<add name="Teleport_DEVEntities"
connectionString="data source=*****;initial catalog=****;integrated security=True;MultipleActiveResultSets=True;App=EntityFramework"
providerName="System.Data.EntityClient"
/>
【解决方案2】:
似乎connectionString 是EntityFramework 类型。
可能的方法是跳过元数据,然后获取完整的连接字符串。
下面的代码节省了我的时间!!
if (connectionString.ToLower().StartsWith("metadata=")) {
System.Data.Entity.Core.EntityClient.EntityConnectionStringBuilder efBuilder = new System.Data.Entity.Core.EntityClient.EntityConnectionStringBuilder(connectionString);
connectionString = efBuilder.ProviderConnectionString; }
【解决方案3】:
只传这么多就行了
<add name="Teleport_DEVEntities" connectionString="data source=*****;initial catalog=*****;User ID=****;password=*****;MultipleActiveResultsets=True" providerName="System.Data.EntityClient" />