Я использую NHIbernate против MySql, и когда я использую следующий оператор, NHibernate Profiler показывает мне, что запрос, передаваемый MySql, в основном SELECT * FROM tablename с предложением NO WHERE.Выражение LINQ не применяется до тех пор, пока не будут получены все данные.Это явно неприемлемо с точки зрения производительности.Что я делаю не так?
Session.Linq<T>().Where(expression).AsQueryable()
Спасибо!
[ОБНОВЛЕНИЕ] Как и предполагал @GertArnold, предшествующий вызов был:
public IQueryable<Student> FindByExpression(Func<Student, bool> expression)
Выражение
_studentRepository.FindByExpression(t =>
(t.Teacher.Id == dto.TeacherId) &&
(t.Id != dto.Id) &&
(
(t.ExternalId != null && student.ExternalId != null
)