Объедините универсальную экспрессию ICollection <T>с любым, принимающим общий предикат - PullRequest
0 голосов
/ 22 июня 2011

Я пытаюсь выяснить, как объединить следующие выражения:

Expression<Func<TParent, ICollection<TChild>>> childSelector = p => p.Children;

Expression<Func<TChild, bool>> childPredicate = c => c.NameLast.StartsWith("V");

var anyExpression = childSelector <------> .Any(childPredicate);

"<------>" - это та часть, с которой я не знаю, что делать. Я использую LINQKit, я просто не могу понять, как объединить эти выражения.

Может ли кто-нибудь помочь мне?

Ответы [ 3 ]

1 голос
/ 22 июня 2011

Я не на 100% уверен в том, что вы хотите от любого выражения, но это мое лучшее предположение.

Expression<Func<TParent, bool>> anyExpression = p => p.Select(childselector).Any(childPredicate);
0 голосов
/ 23 июня 2011

Я нашел ответ на мою проблему

childSelector.Combine(p => p.AsQueryable().Any<TEntity>(this.Predicate), true)

Вот так получился код.

0 голосов
/ 22 июня 2011

Вы можете сделать childselector (parent) .Any (childPredicate), где parent является экземпляром TParent.

...