當我查詢:查詢上繼承了實體框架類不起作用
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