web-dev-qa-db-ja.com

「サポートされていないキーワード: 'メタデータ'」を解決するにはどうすればよいですか?

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" />

このエラーが発生します:

キーワードはサポートされていません: 'メタデータ'

このエラーを修正するにはどうすればよいですか?

6
Batuhan Avlayan

その接続文字列は、EntityFrameworkでのみサポートされています。 (公平を期すために、キーワード「entities」はキー名に含まれています!)ADO raw接続で接続文字列を使用する場合は、&quot;文字列以外のものをすべて削除します&quot;sを含むパーツ:

次のように変更します:<add name="Teleport_DEVEntities" connectionString="data source=*****;initial catalog=****;integrated security=True;MultipleActiveResultSets=True;App=EntityFramework" providerName="System.Data.EntityClient" />

9
Derreck Dean

ConnectionStringはEntityFrameworkタイプのようです。 可能な方法はmetaDataをスキップすることですそして完全な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
Nivas Pandian

これだけ渡すとうまくいく

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