2

POCO Entity GeneratorでEntity Framework 4を使用しています。これまで .edmx ファイルは 1 つしかありませんでしたが、現在のサイズ (100 をはるかに超えるエンティティ) が原因でパフォーマンスの問題が発生しています。

これを一連の .edmx ファイルに分割する必要があることは理解していますが、これは 1 つの例外を除いて問題ありません。これらのコンテキストの 2 つ以上で特定のエンティティ タイプを何らかの方法で共有したいと考えています。たとえば、 User クラスは、モデル全体で、他の点では無関係な多数のエンティティに関連付けられています。

たとえば、独自の .edmx と生成された POCO 用の名前空間を持つセキュリティ モデルを持ち、それを別の .emdx で使用することは可能ですか? そうでない場合は、データベースと同期して更新する必要がある同じデータベース テーブルをモデル化する複数のクラスが存在することになります。それは仕方のないことだと言えます。(データベースファーストを使用しています)。

明らかに、私が間違ったツリーを吠えている場合は、お知らせください!

4

1 に答える 1

2

理論的には、複数の EDMX マッピングで使用される単一の POCO クラスを持つことができます。これは、マッピングとクラスがプロパティの名前と名前/タイプでのみ一致する必要があるためです。実際には、これにはいくつかの制限があります。私が考えることができるのはほんのわずかです:

  • すべての EDMX のジェネレーターを変更し、単一の EDMX から単一のジェネレーターだけですべてのエンティティが生成されることを確認しない限り、このアプローチで自動コード ジェネレーターを使用することはできません。これは、2 番目の制限を直接示しています。
  • エンティティは、すべての EDMX でまったく同じでなければなりません。ナビゲーション プロパティを含みます。そうでない場合は、独自のコード生成ソリューションを構築しない限り、まったく生成できません。動的プロキシが、一意の名前を持つクラスが一度だけマップされることを要求すると、さらに悪いことになります。同じクラスに対して 2 つ以上の異なるマッピングがある場合、アプリケーションの実行ごとに 1 つのマッピングのみで動的プロキシ (遅延読み込み、動的変更追跡) を使用することはできません。
于 2012-09-28T17:31:36.660 に答える