Я наткнулся на странное поведение LINQ to SQL - может ли кто-нибудь пролить свет на это?
Я хочу определить лямбда-выражение и использовать его в своем операторе LINQ. Следующий код работает нормально:
[...]
Func<Table1, bool> lambda = x => x.Id > 1000;
var result = dataContext.Table1s.Where(lambda);
[...]
Но когда я пытаюсь использовать свое лямбда-выражение в операторе связанной таблицы
[...]
Func<Table1, bool> lambda = x => x.Id > 1000;
var result = dataContext.Table2s.Where(x => x.Table1s.Any(lambda));
[...]
, я получаю исключение:
Unsupported overload used for query operator 'Any'.
Но, и этого я не понимаю: он отлично работает, когда Я ввел свою лямбду прямо в запрос:
[...]
var result = dataContext.Table2s.Where(x => x.Table1s.Any(y => y.Id > 1000));
[...]
ПОЧЕМУ?!
Спасибо.