1

エンティティ フレームワークをデータ レイヤーとして使用することにしました。
200 を超えるテーブルがあり、2 つの質問があり
ます。
2. 後で、データ モデルにテーブルを追加できますか?

4

2 に答える 2

2

通常、データモデル内のすべてのテーブルを表現する必要があります。そうしないと、エンティティとしてそれらにアクセスできません。あなたのような大規模なデータベーススキーマの1つの戦略は、データモデルを構成する別々の部分(別々の.emdxファイル)に分割することです-単一の.edmxモデルがあると、ある時点でVSが遅くなる可能性があります-私は個人的にこれを経験していません、したがって、自分で試してみる必要があります。既存のデータベースから初期モデルを作成するのは、簡単で手間がかかりません。

データモデルの任意の時点でテーブルを追加できます。統合ウィザードを使用すると、既存のデータベースをポイントするだけで、追加するテーブルを選択できます。

于 2011-04-16T03:10:44.597 に答える
1

@BrokenGlassに同意します。VS 2010 SP1 では、デザイナのパフォーマンスが改善されているはずです。これは、より大きなモデルでよりうまく機能しますが、1 つのモデルで 200 のテーブルは多すぎます。

ADO.NET チームは、大規模なモデルの操作に関する 2 つの記事を公開しました: Part 1Part 2。一般に、これらの記事は、マッピングを複数の EDMX に分割することだけでなく、複数の EDMX で共通のエンティティを共有することについても書かれており、非常に役立ちます。この共有がなければ、ある EDMX から別の EDMX のエンティティを参照することはできません。また、各 EDMX には独自のObjectContext. マッピングを複数の EDMX に分割することは、アーキテクチャの決定に基づいている必要があります。たとえば、コンポーネントによる分割や集約ルートによる分割などです。とにかく、複数の EDMX を使用するとアプリケーションの複雑さが増し、EF 機能が複数の EDMX 間で機能しないことを理解する必要があります。たとえば、異なる EDMX にマップされたエンティティの上に linq-to-entities クエリを作成することはできません。 .

シングルで複数の EDMX ファイルを使用する方法についていくつかのハックを説明する質問に答えましたが、ObjectContext必要になるまでそのソリューションを使用しないことをお勧めします。手動で (たとえば、カスタム DefiningQuery など)。その理由は、データベース機能から更新すると変更が削除されるため、更新されない EDMX にそれらを個別に保持しておくと便利です。

于 2011-04-16T08:37:33.863 に答える