我在做Walkthrough: Mapping Inheritance - Table-per-Hierarchy (Entity Data Model Tools)。
这是模型:
实体教师和学生是具有BaseType Person的派生类型。
问题是:如果它们在ObjectContext中不可见,我如何直接在LINQ中查询教师和学生实体?
我原本希望像这样做这样的事情:
var result =来自ctx的学生。学生选择学生;
派生实体似乎只作为实体(EntityObject)而不是ObjectSet存在。
谢谢!
答案 0 :(得分:1)
您应该为ObjectContext
class生成一个People
属性。从那里,您可以获得所有基本类型:
var allPeople = ctx.People;
或者,如果您想要特定的派生类型,可以使用OfType
extension method上的IQueryable<T>
,如下所示:
var students = allPeople.OfType<Student>();
var instructors = allPeople.OfType<Instructor>();