web-dev-qa-db-ja.com

エンタープライズプロジェクトでのEntityFrameworkの管理(数百のテーブル)

私は仕事でEntityFrameworkを使用していますが、いくつかの問題に直面しました。

通常、いくつかのドメインに関連するテーブルを含む小さなEdmxのファイルを作成することについて耳にします。ヘルプデスクEdmx、HR Edmxなど。すべてのテーブルを1つの大きなEdmxにロードする代わりに、はるかに簡単ですが、パフォーマンスを考慮します(at主に設計と構築時間)、それは実行可能ではありません。

最初にcommomテーブルについていくつかの問題が発生しました。つまり、Employeesテーブルです。これはすべてEdmxであり、Employeeクラス参照を使用し、両方の名前空間を使用すると競合します。次に、Empoyeeを参照する必要があります。 MyCompany.HelpDesk.Employeeというフルネームのクラス。

それは自然に見えません。

すべてのEDMXで同じテーブルを繰り返し追加していることに気付きました。これはやり直しです。また、[テーブルの追加]ダイアログに2kのテーブルがあるため、エンティティフレームワークの設計にテーブルを追加するのに数分かかります。

VS2012は、同じEdmxファイルに2kテーブルをロードするソリューションになる可能性があります(デザイナが分割される可能性があるため)が、デザイナを開くだけでなく、コンパイルも遅れるため、私は信じていません。

別のオプションはコードファーストですが、データベースからすべてのテーブルを読み込もうとするため、データベースをクラスにリバースエンジニアリングするための適切なツールがありません。約2時間かかります。

短い回答:500を超えるテーブルを処理する場合、EDMXDesignerからの応答が遅れるのが一般的です。

EF4 ORMを使用したMVCプロジェクトがあり、EDMに500未満のテーブルがある一方で、EF Model Designer just hang on model updateが何度もありました。したがって、この不快な動作を最小限に抑えるために、デスクトップマシンのリソース(RAMから8GBおよびSSD)を最大化し、edmxファイルの更新中に他のすべてのアプリケーションを閉じました。そのため、更新されたDBスキーマを介して行われるモデル更新専用の1つの開発者マシンを入手できます。

また、トピックについて再検索し、EFのパフォーマンスにもプラスの影響を与えたいくつかの良い投稿を見つけました。

最後になりましたが、EFチームからの最近のニュースによると、EF4.3のパフォーマンスには多くの改善がありますが、私は個人的にそれで遊んでいませんでした。

5
Yusubov