Когда я делаю запрос:
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
.
Я использую Table для иерархии. Модель производителя:
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"));
Edit:
Это также ничего не возвращает:
Users.OfType<Student>().Where(u => u.StudentClasses.Any(sc => true))