1

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から文字列を読み取る場合に機能します。

4

1 に答える 1

2

CEを使用する場合は、 SQLCEを指すようにDefaultConnectionFactoryを変更する必要がある場合があります。

Database.DefaultConnectionFactory = new SqlCeConnectionFactory("System.Data.SqlServerCe.4.0");

詳細については、このブログ投稿を参照してください

于 2012-09-24T16:07:13.273 に答える