实体框架TPT和不支持1:0关系的继承?

时间:2013-06-24 20:01:21

标签: c# .net entity-framework entity-framework-5 table-per-type

在Entity Framework 5.0中指定继承并在DB2上具有TPT配置之后,如何仅访问基本实体。目前,如果基础实体的查询在派生表中没有数据,则我的上下文返回0。我的课程是这样的:

public class Document {
    public Header Header { get; set; }
    public List<Transaction> Transactions { get; set; }
}

public class Header {
    public int Id { get; set; }
}

public class Transaction {
    public int Id { get; set; }
}

这将是我想要访问的基础,但我也有特殊情况,例如:

public class SpecialDocument {
    public Header Header { get; set; }
    public List<SpecialTransaction> Transactions { get; set; }
}

哪里

public class SpecialTransaction : Transaction { 
    public string ExtraField { get; set; }
}

ExtraField位于另一个表中的地方。 (这当然是一个愚蠢的版本)当我尝试做的时候:

var myList = dbcontext.Transactions.Where(x => x.Id == someId).ToList()

如果SpecialTransaction表中没有现有记录,则返回0结果。当然,我希望能够在任何给定点返回Document类型或SpecialDocument类型,因为Transaction表和SpecialTransaction表可以有1到1 0关系。它似乎适用于SQL Express但不适用于DB2(抛出BOOLEAN未定义错误)

0 个答案:

没有答案