0

最初にエンティティ フレームワーク コードでいくつかの POCO オブジェクト (エンティティ) を定義するときに問題があります。残りのエンティティ (この例では Entity_B) は、別のエンティティ (Entity_A ではなく Entity_B) から継承する一部 (Entity_C) を除いて、それ (子) から継承します。例えば:

public class Entity_A
{
  public virtual Guid ID { get; set; }
}

// Entity_B has not primary key defined within as it inherits from Entity_A
public class Entity_B : Entity_A
{
  public virtual string propertyB1 { get; set; }
  public virtual string propertyB2 { get; set; }
  public virtual string propertyB3 { get; set; }
}

// Entity_C has not primary key defined within as it inherits from Entity_A through Entity_B
public class Entity_C : Entity_B
{
  public virtual string propertyC1 { get; set; }
  public virtual string propertyC2 { get; set; }
  public virtual string propertyC3 { get; set; }
}

したがって、実行後、Entity_A、Entity_B、Entity_C のテーブルが自動的に生成されますが、Entity_A と Entity_B のテーブルのみが正しく、Entity_C のテーブルは正しくありません。

テーブル Entity_A にはフィールドがあります:
-ID

どちらが正しい。

テーブル Entity_B には次のフィールドがあります:
-ID
-propertyB1
-propertyB2
-propertyB3

これも正しいです。

テーブル Entity_C には次のフィールドがあります:
-ID
-propertyC1
-propertyC2
-propertyC3

Entity_C については、次のフィールドが必要です:
-ID
-propertyB1
-propertyB2
-propertyB3
-propertyC1
-propertyC2
-propertyC3

私は何を間違っていますか?エンティティ フレームワーク コード ファースト (バージョン 4.1) は継承をまったくサポートしていませんか?

前もって感謝します。

4

1 に答える 1