У меня есть Expression<Func<T1, T2, bool>> и экземпляр T2. Мне нужно получить Expression<Func<T1, bool>> с имеющимся экземпляром T2 "зашитым" внутрь. Есть ли простой способ сделать это? (Сложный я, кажется, знаю).
Re: Expression<Func<T1, T2, bool>> -> Expression<Func<T1, bo
Здравствуйте, lazymf, Вы писали: L>У меня есть Expression<Func<T1, T2, bool>> и экземпляр T2. Мне нужно получить Expression<Func<T1, bool>> с имеющимся экземпляром T2 "зашитым" внутрь. Есть ли простой способ сделать это? (Сложный я, кажется, знаю).
Здравствуйте, _FRED_, Вы писали:
_FR>Здравствуйте, lazymf, Вы писали:
L>>У меня есть Expression<Func<T1, T2, bool>> и экземпляр T2. Мне нужно получить Expression<Func<T1, bool>> с имеющимся экземпляром T2 "зашитым" внутрь. Есть ли простой способ сделать это? (Сложный я, кажется, знаю).
_FR>На первый взгляд кажется, что больше ничего и не нужно надо заменить второй параметр на "имеющийся экземпляр T2".
Здравствуйте, lazymf, Вы писали:
L>>>У меня есть Expression<Func<T1, T2, bool>> и экземпляр T2. Мне нужно получить Expression<Func<T1, bool>> с имеющимся экземпляром T2 "зашитым" внутрь. Есть ли простой способ сделать это? (Сложный я, кажется, знаю). _FR>>На первый взгляд кажется, что больше ничего и не нужно надо заменить второй параметр на "имеющийся экземпляр T2".
L>Спасибо, это то, что я имел в виду под "сложным" способом
Здравствуйте, _FRED_, Вы писали:
_FR>ИМХО, это менее "чисто". Но, если у вас там и "Linq To SQL" ещё… а он, анализируя выражения, исправляет этот Инвок на то, что нужно?
Ну, пока там ничего сложнее (x, y) => x.ParentId == y.Id не было, для таких выражений SQL судя по трейсу генерируется корректный. А почему менее чисто?
Здравствуйте, lazymf, Вы писали:
_FR>>ИМХО, это менее "чисто". L>А почему менее чисто?
Ну так первый способ позволяет обойтись без [лишнего, не необходимого] косвенного вызова. Способ через визитор позволяет получить в точности оригинальное выражение только с самой необходимой минимальной заменой. Второй же способ возвращает другое выражение, параметризующее первое.
Help will always be given at Hogwarts to those who ask for it.