继承和导航性能
问题描述:
我有这样的关系:继承和导航性能
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; }
}
相关类FirstChild1记录是类型SecondChild1的。 class FirstChild2的相关记录属于SecondChild2类型。
当我在写结果
var record = from ch in context.FirstParent.OfType<FirstChild1>() select ch.SecondRecord;
我也有SecondParent对象。 发生了什么?如何加载SecondChild1对象?
答
我找到了一个解决方案。我从所有四个表中加载记录,并加入以收集匿名对象所需的信息。
我不觉得有什么问题。您要求FirstParent实体集合中FirstChild1类型的项目(我假设这是一个子集合)。然后在每个访问SecondParent类型的导航属性SecondRecord上。所以我希望查询只返回SecondParent类型的实例。也许如果你描述你想要的查询的意图,它会更容易帮助。 – 2012-04-27 10:50:01