EntityFrameworkとDbContextから派生したオブジェクトを使用してC#アプリケーションを扱っています。MyDbContextオブジェクトの新しいインスタンスが作成されるときに、接続文字列をプログラムで設定する必要があります。そうするために、私は次のコードを使用します:
public MyDbContext(string myString)
{
this.Database.Connection.ConnectionString = myString
}
myString = "Server=MYSERVER\\SQLEXPRESS; Database=MyDB; User ID=user; Password=pass;";
or
myString = "Data Source=|DataDirectory|\\AirecCalcDatabase.sdf";
データベースプロバイダーは、2つの文字列で異なります。最初のものにはSQLExpress、2番目のものにはSQLCompact。このコードを最初の文字列で実行しようとすると、接続文字列からArgumentExceptionが発生します。たとえば、「キーワードが無効です:サーバー」だけでなく、「キーワードが無効です:データベース」もあります。接続文字列は、引数なしでDbContextを使用する場合、つまりapp.configから文字列を読み取る場合に機能します。