20

実行時に Entity Framework 接続文字列を設定する必要があります。現在、私は次のものを持っています:

string connectionString = "metadata=res://*/DataModels.CustomerDataModel.csdl|res://*/DataModels.CustomerDataModel.ssdl|res://*/DataModels.CustomerDataModel.msl;provider=System.Data.SqlClient;provider connection string="data source=tcp:{serverName},{portNumber};initial catalog={databaseName};user id={username};multipleactiveresultsets=True;application name=EntityFramework"";
using (CustomerEntities entities = new CustomerEntities(connectionString))
{
  CustomerEntity entity = new CustomerEntity();
  // do more
  entities.CustomerEntities.Add(entity);
  entities.SaveChanges();
}

上記のコードを ({parameter} 値を置き換えて) 実行すると、次のエラーが発生します。

サポートされていないキーワード: 'data source'。

私は何を間違っていますか?

4

4 に答える 4

21

これを変える。

string connectionString = "metadata=res://*/DataModels.CustomerDataModel.csdl|res://*/DataModels.CustomerDataModel.ssdl|res://*/DataModels.CustomerDataModel.msl;provider=System.Data.SqlClient;provider connection string="data source=tcp:{serverName},{portNumber};initial catalog={databaseName};user id={username};multipleactiveresultsets=True;application name=EntityFramework"";

これに(「文字を「」としてエスケープした方法に注意してください)

string connectionString = @"metadata=res://*/DataModels.CustomerDataModel.csdl|res://*/DataModels.CustomerDataModel.ssdl|res://*/DataModels.CustomerDataModel.msl;provider=System.Data.SqlClient;provider connection string= ""data source=tcp:{serverName},{portNumber};initial catalog={databaseName};user id={username};multipleactiveresultsets=True;application name=EntityFramework""";
于 2013-02-03T14:36:05.143 に答える
6

EntityConnectionStringBuilderSqlConnectionStringBuilderを使用して、必要に応じてパラメーターを変更する方が簡単です。

于 2014-02-04T14:45:12.143 に答える