在ObjectContext中查询派生实体(每个层次结构表)

时间:2012-03-13 13:54:17

标签: c# entity-framework entity-framework-4

我在做Walkthrough: Mapping Inheritance - Table-per-Hierarchy (Entity Data Model Tools)

这是模型:

Entities Data Model

实体教师和学生是具有BaseType Person的派生类型。

问题是:如果它们在ObjectContext中不可见,我如何直接在LINQ中查询教师和学生实体?

我原本希望像这样做这样的事情:

  

var result =来自ctx的学生。学生选择学生;

派生实体似乎只作为实体(EntityObject)而不是ObjectSet存在。

谢谢!

1 个答案:

答案 0 :(得分:1)

您应该为ObjectContext class生成一个People属性。从那里,您可以获得所有基本类型:

var allPeople = ctx.People;

或者,如果您想要特定的派生类型,可以使用OfType extension method上的IQueryable<T>,如下所示:

var students = allPeople.OfType<Student>();
var instructors = allPeople.OfType<Instructor>();