XAF Code First EF プロジェクトの継承戦略として Table Per Concrete Class を使用したいと考えています。
ウィザードを使用してプロジェクトを作成し、次のクラスに貼り付けます
名前空間 Solution12.Module.BusinessObjects {
public abstract class BaseBO // abstract class helpful in getting TPC
{
[Key]
public int Id { get; set; }
public string Description { get; set; }
}
[NavigationItem("People")]
[Table("People")] // explicit table name is helpful in preventing TPH
public class Person : BaseBO
{
public string PersonName { get; set; }
}
[NavigationItem("Organisation")]
[Table("Organisations")]
public class Organisation : BaseBO
{
public string OrganisationName { get; set; }
}
public class Solution12DbContext : DbContext {
...
public DbSet<Organisation> Organisations{ get; set; }
public DbSet<Person> People { get; set; }
//public DbSet<BaseBO> baseBOs { get; set; } // having this will cause TPT instead of TPC
}
}
これはすべて、データベース構造を作成するために、私が望むように機能します。ただし、設計時にモデル デザイナーに抽象クラスが表示されません。実行時にモデル デザイナーで抽象クラスとそのビューを確認できます。
設計時にモデル設計者に抽象クラス BaseBO を表示させるにはどうすればよいですか?
実行時のカスタマイズはデータベースに保存され、ソース管理の一部ではないため、これは重大な問題です。
この問題のチケットは、ここの Dev Express Supportにもあります が、これは、現在問題であると私たちが理解していることをより簡潔に説明したものです。