0

私は MVC アプリケーションを開発しており、かみそりの構文を使用しています。モデルファーストの方法を使用しました。

Customer と Lead の 2 つのエンティティがあります。リードは顧客から継承されます。

IsActive プロパティが true の場合、Customer は Lead として扱われます。それ以外の場合は Customer になります。

edmx ファイル イメージを確認してください。

ここに画像の説明を入力

さて、通常のエンティティでは、単一のエンティティと単一のテーブルを扱うだけです。この場合、保存と読み込みのプロセスをどのように処理できますか。DBの2つのテーブルからレコードを保存してロードする必要があるためです。通常のインデックス ビューはここで機能しますか?

4

1 に答える 1

0

Entity Framework で継承を使用する場合、階層を公開する単一のものがありDbSetます。DbContextデータベースには、テーブル構造を構成するためのいくつかのオプションがあります。たとえば、次を使用できます。

  • 階層ごとのテーブル
  • タイプ別表
  • コンクリート種類別表

(わかりやすい説明については、このブログを参照してください: Inheritance in the Entity Framework .

ただし、クエリでは、これについて考える必要はありません。クエリは次の構造になります。

var leads = from l in dbcontext.Leads.OfType<Customer>()
            select l;

OfType()は、コレクションを階層内のサブタイプにフィルター処理します。をスキップするOfTypeと、結果のクエリで顧客と見込み客の両方が取得されます。

于 2012-09-28T07:30:40.493 に答える