Fluent APIテーブルの足場 - HasBaseType

c# ef-fluent-api entity-framework entity-framework-core fluent

質問

私は共通の基本クラスAccountModelを共有する私のプロジェクトのStudentTeacher 2つのエンティティを持っています。基本クラスには、生徒と教師の両方が必要とするプロパティが含まれています(意味的に、生徒と教師の両方が口座所有者です。これはDRY原則の違反を防ぎます)

私のFluent APIの設定で私は持っている:

builder
    .Ignore<AccountModel>();

builder
    .Entity<Student>()
    .HasBaseType<AccountModel>()
    .ToTable("Students");

builder
    .Entity<Teacher>()
    .HasBaseType<AccountModel>()
    .ToTable("Teachers");

しかし、EFがマイグレーションを足場に乗せて新しいデータベースを生成すると、私はAccountModelテーブルを取得しますが、 StudentsテーブルまたはTeachersテーブルは取得しません。何がありますか?

受け入れられた回答

現在、Entity Frameworkコアは、継承マッピング用の階層別テーブル(TPH)パターン( http://www.learnentityframeworkcore.com/inheritance )のみをサポートしています。そのため、すべてのタイプに対して1つのテーブルが作成されます。

Table per Type (TPT)パターンのように、 コンクリートタイプ (TPC) あたりのテーブルがバックログにあり、積極的に検討されています。



Related

ライセンスを受けた: CC-BY-SA with attribution
所属していない Stack Overflow
このKBは合法ですか? はい、理由を学ぶ
ライセンスを受けた: CC-BY-SA with attribution
所属していない Stack Overflow
このKBは合法ですか? はい、理由を学ぶ