我有以下LINQ查询:C#的LINQ提取Where子句
var query1 = qble1.Where(x => x.name == "name" && x.id == 1);
我想给Where
子句提取到一个变量,然后我就可以重新申请到另一个查询,当我需要。
为了给你一个稍微不同的视图(希望不要混淆问题的目的),我可以做到以下几点:
Expression<Func<testClass, bool>> whereClause = x => x.name == "name" && x.id == 1;
var query1 = qble1.Where(whereClause);
,这将在whereClause
变量适用于query1
我我试图实现上述的逆过程,即写出查询,并将Where子句抽取到变量中whereClause
例如
Expression<Func<testClass, bool>> whereClause = WhereClause of query1
可以这样做吗?
我想这样做的原因是为了解决我在这个问题上遇到的问题:
C# Predicate builder with using AND with OR
是的,你可以在静态调用表达式中的第二个参数。如果你知道你想要的重写,你可以通过名字来识别它。 –
换句话说,通过检查生成的IEnumerable''来检索传递给'Enumerable.Where'的'predicate'参数? –
@ vc74这听起来对我来说 – Alex