将通用ICollection <t>表达式与任何接受通用谓词</t>组合

时间:2011-06-22 19:10:58

标签: c# .net-4.0 linq-to-entities expression-trees

我正在试图弄清楚如何组合以下表达式:

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

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

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

“&lt; ------&gt;”是我不知道该怎么做的部分。我正在使用LINQKit,我无法弄清楚如何组合这些表达式。

有人可以帮我一把吗?

3 个答案:

答案 0 :(得分:1)

我不是100%清楚你想要什么表达,但这是我最好的猜测。

Expression<Func<TParent, bool>> anyExpression = p => p.Select(childselector).Any(childPredicate);

答案 1 :(得分:0)

你可以做childselector(parent).Any(childPredicate)其中parent是一个TParent实例。

答案 2 :(得分:0)

我找到了answer to my problem

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

这就是代码的结果。