当我查询:查询上继承了实体框架类不起作用
Users.OfType<Student>().Where(u => u.StudentClasses.Any(sc => sc.Class.TermId == 1 && sc.Class.SubFormId == 1))
我什么也没得到。但此查询返回true:
StudentClasses.Any(sc => sc.Class.TermId == 1 && sc.Class.SubFormId == 1)
所以基本上这是一样的:
Users.OfType<Student>().Where(u => true)
它返回所有的学生。所以OfType<Student>
的作品。
我100%确定这些班级中有学生StudentClasses
,但由于某种原因,我没有回到学生,尽管子查询返回true。
Student
继承自User
,但只有Student
有StudendClass
。这个查询会有什么问题?
我基本上希望学生在特定的子窗体/学期(所有这些特性都处于Class
我使用的每heirachy模型构建表:。
modelBuilder.Entity<User>()
.Map<Teacher>(m => m.Requires("UserType").HasValue("Teach"))
.Map<Student>(m => m.Requires("UserType").HasValue("Stu"))
.Map<Staff>(m => m.Requires("UserType").HasValue("Staff"));
编辑:
这也不会返回任何内容:
Users.OfType<Student>().Where(u => u.StudentClasses.Any(sc => true))
你检查了EF生成的SQL吗?你不能使用`User.Where(....`? – Eranga 2011-12-17 01:23:22
@Eranga cant,Student因此被继承`StudentClasses`不是`User`的一部分,`User`是基类 – 2011-12-17 23:03:43