1

複数のスキーマ (実行時に定義) で複数のテーブル (すべて同じ構造を持つ) からデータを読み取る必要があるこのアプリケーションを開発しています。エンティティ フレームワーク 5 をコード ファースト アプローチで使用するには、エンティティのスキーマ名を変更する方法が必要です。現在、DbConnection とスキーマ名 (オーバーライドされた OnModelCreating で使用するウィッチ) の 2 つのパラメーターを持つコンストラクターを使用して、DbContext を作成しています。

初めて DbContext を作成すると、すべて正常に動作し、データを取得できます。しかし、2 番目のスキーマ名で新しい DbContext を作成すると、DbContext で使用される DbConnection はコンストラクターで渡されたものですが、エンティティのスキーマ名は最初のもののままです。 DbContext の新しいインスタンス。

アイデアはありますか?ありがとう

編集: 関係ないと思いますが、私は Oracle データベースを使用しています。

4

2 に答える 2

0

カスタムデータベース初期化子(IDatabaseInitializerおよびDatabase.SetInitializer(new YouCustomInitializer());)を提供することで、何かを実行できる場合があります。

于 2013-02-15T09:17:37.107 に答える
0

これを行うには、スキーマごとに (既定のスキーマ セットを使用して) SQL Server ユーザーを作成し、複数の接続文字列を作成します。

アプリケーションで、ユーザー (スキーマ) ごとに接続文字列を作成します。接続文字列を受け入れる dbcontext コンストラクターを追加し、適切な接続文字列をコンストラクターに渡します。

于 2013-02-15T08:40:40.683 に答える