如果我继承包含子集合的类,如何指定TPT?

时间:2016-07-25 00:46:15

标签: ef-code-first xaf

我有以下课程

[Table("JEvent"]
public class JEvent : Event
    {
       public string MoreDetails { get; set; }
    }

Table("JResource")
public class JResource : Resource
{
    public string MoreDetails { get; set; }
}

我知道Event包含Resource的子集合,导致创建ResourceEvents表,即使ResourceEvents表在DBContext中没有自己的DBSet

DBContext包含

 public DbSet<JEvent> JEvents { get; set; }
 public DbSet<JResource> JResources { get; set; }

这会导致创建以下表格

JEvent
Event
JResource
Resource
ResourceEvents

我想要的表是

JEvent
JResource
JResourceJEvents 

[更新] 我在DBContext中尝试过followng

public class MyDbContext : DbContext {
// ..
protected override void OnModelCreating(DbModelBuilder modelBuilder) {
    base.OnModelCreating(modelBuilder);
    modelBuilder.Ignore<Event>();
    modelBuilder.Ignore<Resource>();
}

}

但是,由于Event类包含Resource的子集合,因此该解决方案不会创建JResoureJEvent表。

我在JEvent课程中尝试了以下内容

public override IList Resources {get;组; }

然而,这会导致错误

覆盖属性IList时无法更改返回类型

0 个答案:

没有答案