0

我正在尝试实现一个多选过滤器以传递给通用存储库。

存储库过滤器方法需要一个Expression<Func<T, bool>>参数。

通常我会应用过滤器, Filter(i => i.Id == myId && i.Name.Contains(myName))但在这种情况下,我有一组在 List 中提供的值,我想遍历列表并动态创建 Lambda 表达式的一部分以传递给 Filter 方法。

所以我对过滤器方法的调用类似于 Filter(myGeneratedLambdaExpression && i.Name.Contains(myName))

其中 myGeneratedLambdaExpression 然后将解析为 (i => i.Id == myId1 || i.Id == myId2 || i.Id == myId3) 和 myId1、myId2 和 myId3 是列表中包含的值

我该怎么做呢?

4

1 回答 1

0

你需要DynamicLinQ。请参阅博客。

于 2013-07-25T17:28:24.663 回答