【问题标题】: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=&quot;data source=*****;initial catalog=****;integrated security=True;MultipleActiveResultSets=True;App=EntityFramework&quot;" providerName="System.Data.EntityClient" />

我收到此错误:

不支持关键字:“元数据”

我该如何解决这个错误?

【问题讨论】:

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


    【解决方案1】:

    该连接字符串仅受实体框架支持。 (公平地说,关键字“entities”在键名中!)如果您想在 ADO 原始连接中使用连接字符串,请删除 &amp;quot; 字符串部分之外的任何内容,包括 &amp;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" />
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2014-01-14
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2010-11-27
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多