2011-09-12 10 views

答えて

86

Discriminator列が使用され、Table-Per-Hierarchy継承シナリオで必要です。例えば、あなたが...

public abstract class BaseEntity 
{ 
    public int Id { get; set; } 
    //... 
} 

public class Post : BaseEntity 
{ 
    //... 
} 

public class OtherEntity : BaseEntity 
{ 
    //... 
} 

をこのようなモデルを持っている...そして、あなたの派生コンテキストにDbSet<BaseEntity>を追加することによって、例えば、モデルのBaseEntity一部を、作る場合は、Entity Frameworkのは、このクラス階層をマップしますこのテーブルに格納されている異なるタイプ(PostまたはOtherEntity)を区別するために、特別なカラム(Discriminator)を導入しています。この列には、タイプの名前(再度PostまたはOtherEntity)が入力されます。

+0

お返事ありがとうございます。しかし、私のモデルは得られていません。なぜEFは弁別器を作っているのですか? – kasperhj

+0

@lejon:あなたの質問にモデルを表示できますか?私は相続の文脈以外では、Discriminator列を見たことがありません。上記の私のコードは例です。 'Post'自体が導出されていない場合でも、' Post'から派生した他のエンティティがある場合は、同じものを取得します。 – Slauma

+0

私は見る!ポストから派生した別のモデル。回答ありがとうございます! – kasperhj

関連する問題