6

Windows アプリで SQL Server CE 4.0 を使用し、Entity Framework を使用してそのモデルを作成しました。

正常に動作しますが、私の問題は、接続文字列を変更するコンストラクターがなく、デフォルトでapp.configファイルから接続文字列を読み取ることです。

 using (var Context = new MyEntitiesModel(//has no constructor))
 {
        ...
 }

動的接続文字列を作成し、

  using (var Context = new MyEntitiesModel())
   {
         Context.Database.Connection.ConnectionString = entityConnection.ConnectionString;
   }

この方法で問題なく動作しますが、app.configファイル内の別の接続文字列を削除すると、これが得られました。

エラー = 無効なメタソース ....

デフォルトのコンストラクターがそれを使用するため

どうすれば対処できますか?

4

2 に答える 2

2

独自のコンストラクターを作成します。MyEntitiesModelクラスの独自の部分部分を追加し、接続文字列を受け入れるコンストラクターを追加できる部分クラスです。

public partial class MyEntitiesModel {
    public MyEntitiesModel(string connectionString) : base(connectionString) { }
}
于 2012-09-30T12:58:02.367 に答える
1

私はDbContextを使用しています。いくつかのオーバーロード コンストラクターがあります。

System.Data.Entity DbContext の例

Context = new BosMasterEntities(nameOrConnectionString: nameOrConnectionString);

同時に複数の DB に接続できます。

于 2012-10-12T13:49:30.043 に答える