我想使用 Table Per Concrete Class 作为我的 XAF Code First EF 项目的继承策略。
我使用向导创建项目,然后从以下粘贴类
命名空间 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 支持处找到此问题的票证,但这 是对我们现在理解的问题的更简洁的陈述。