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" />
このエラーが発生します:
キーワードはサポートされていません: 'メタデータ'
このエラーを修正するにはどうすればよいですか?
その接続文字列は、EntityFrameworkでのみサポートされています。 (公平を期すために、キーワード「entities」はキー名に含まれています!)ADO raw接続で接続文字列を使用する場合は、"
文字列以外のものをすべて削除します"
sを含むパーツ:
次のように変更します:<add name="Teleport_DEVEntities" connectionString="data source=*****;initial catalog=****;integrated security=True;MultipleActiveResultSets=True;App=EntityFramework" providerName="System.Data.EntityClient" />
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; }
これだけ渡すとうまくいく
<add name="Teleport_DEVEntities" connectionString="data source=*****;initial catalog=*****;User ID=****;password=*****;MultipleActiveResultsets=True" providerName="System.Data.EntityClient" />