Entity framework 继承和导航属性

Entity framework 继承和导航属性,entity-framework,wcf-data-services,Entity Framework,Wcf Data Services,我有这样的关系: class FirstParent { public SecondParent SecondRecord { get; set; } } class SecondParent { public IEnumerable<FirstParent> FirstRecords { get; set; } } class FirstChild1 : FirstParent { public String StrInFirstChild1{ get; se

我有这样的关系:

class FirstParent {
   public SecondParent SecondRecord { get; set; }
}

class SecondParent {
   public IEnumerable<FirstParent> FirstRecords { get; set; }
}

class FirstChild1 : FirstParent {
   public String StrInFirstChild1{ get; set; }
}

class SecondChild1 : SecondParent {
   public String StrInSecondChild1{ get; set; }
}

class FirstChild2 : FirstParent {
   public String StrInFirstChild2{ get; set; }
}

class SecondChild2 : SecondParent {
   public String StrInSecondChild2{ get; set; }
}
class-FirstParent{
public SecondParent SecondRecord{get;set;}
}
第二类父类{
公共IEnumerable FirstRecords{get;set;}
}
类FirstChild1:FirstParent{
公共字符串StrInFirstChild1{get;set;}
}
类SecondChild1:SecondParent{
公共字符串StrInSecondChild1{get;set;}
}
类FirstChild2:FirstParent{
公共字符串StrInFirstChild2{get;set;}
}
类别SecondChild2:SecondParent{
公共字符串StrInSecondChild2{get;set;}
}
与类FirstChild1相关的记录属于类型SecondChild1。 与类FirstChild2相关的记录属于类型SecondChild2

当我写作时

var record = from ch in context.FirstParent.OfType<FirstChild1>() select ch.SecondRecord;
var record=从context.FirstParent.OfType()中的ch选择ch.SecondRecord;
结果,我还有第二个父对象。
发生了什么事?如何加载SecondChild1对象?

我找到了一个解决方案。我从所有四个表中加载记录,并进行连接以收集匿名对象所需的信息。

我没有发现任何错误。您正在从FirstParent实体集中请求类型为FirstChild1的项(我假设这是一个子集)。然后在每一个上访问导航属性SecondRecord,该属性的类型为SecondParent。因此,我希望查询只返回SecondParent类型的实例。也许,如果你描述了你想要纠正的查询的意图,这会更容易得到帮助。