我如何解决"不支持的关键字:'元数据' &#34 ;?

时间:2016-01-06 14:42:09

标签: sql sql-server database-connection connection-string

我无法连接到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=&quot;data source=*****;initial catalog=****;integrated security=True;MultipleActiveResultSets=True;App=EntityFramework&quot;" providerName="System.Data.EntityClient" />

我收到此错误:

  

不支持关键字:&#39;元数据&#39;

如何解决此错误?

3 个答案:

答案 0 :(得分:9)

只有Entity Framework支持该连接字符串。 (公平地说,关键字&#34; entities&#34;在键名中!)如果要在ADO原始连接中使用连接字符串,请删除&quot;字符串部分之外的任何内容,包括&quot; S:

将其更改为:     <add name="Teleport_DEVEntities" connectionString="data source=*****;initial catalog=****;integrated security=True;MultipleActiveResultSets=True;App=EntityFramework" providerName="System.Data.EntityClient" />

答案 1 :(得分:2)

看来connectionString是EntityFramework Type。 可能的方法是跳过元数据,然后获取完整的connectionString。

  

以下代码节省了我的时间!!

if (connectionString.ToLower().StartsWith("metadata=")) {
    System.Data.Entity.Core.EntityClient.EntityConnectionStringBuilder efBuilder = new System.Data.Entity.Core.EntityClient.EntityConnectionStringBuilder(connectionString);
    connectionString = efBuilder.ProviderConnectionString; }

答案 2 :(得分:0)

通过这么多它会起作用

<add name="Teleport_DEVEntities" connectionString="data source=*****;initial catalog=*****;User ID=****;password=*****;MultipleActiveResultsets=True" providerName="System.Data.EntityClient" />