2011-06-24 14 views
5

エンティティフレームワークを使用していれば、EDMXがクールであることがわかります。あなたはまた、それが巨大になり、ほとんど管理できなくなることも知っています。デザインの決定:複数のEF EDMXファイル

が大きくなるとき、第二EDMXを作成するために魅力的またはサードれる - データベース内の各スキーマのために一つでも(一例として)。

このような別離はあなたのEDMXの組織に役立つだろうが、それは同じ名前空間内のエンティティのコンテキストを区切ることができます。

また、別々のEDMXファイルが過度、冗長データベース通信でEDMXファイル結果を横切って操作をJOIN状況を作り出すことができます。

しかし、事実はEDMX、より大きな、より困難それは使用することです、残ります。それが正しいことを確認することがより困難になる。それは簡単に壊れます。

はあなたのEDMXファイルをばらばらですか?あなたはそれをいつ経験するのか?

答えて

1

一例(そして、露出したFKのみを残す)。

EDMXを個別に管理したい場合は、EDMXを1つに自動的にマージできますが、すべてのコンテキストを開き、1つとして照会します。これは、同じ名前空間を共有する必要があります。

+0

プロジェクト間でEDMXを再利用する。それはEDMXを分割する正当な理由です。私たちはまだそのシナリオを打っていません。 –

1

我々は、単一の溶液中で二つの別々のEDMXを使用する必要限り行ってきました。この分離は、ドメイン固有のモデルエンティティ用のEDMXと、すべてのソリューションでより一般的なもの(別の例としてPayment)とで発生しました。論理的には、これは分離の難しいルールではありませんでしたが、私たちにとってはdbスキーマレベルであったと言えるでしょう。

私たちはそれらの間にジョインする必要はありませんでしたが、トランザクションが必要でした。これは、TransactionScope内でEFコンテキストをラップする再利用可能なUnitOfWorkContainerを使用して行いました。コンテキストはDIを介してコンテナに挿入され、コンテナ内に複数のコンテキストが保持されている場合にのみ、TransactionScopeを使用します。

コンテナ自体が私たちのIUnitOfWorkインターフェイスを実装していたので、既存のコードベースに簡単に接続できなくなりました。あなたは他の人がプロジェクト固有のものながら、複数のプロジェクト、 に使用されているエンティティのグループを持っていて、間のナビゲーション性を有する捨てて喜んでいる場合は、あなたのEDMXは だろう分割する必要性のための

関連する問題