我有很多这种带有hibernate的条件查询参数。这需要某种封装,但我是linq查询的新手,并不确定它是否完全可能。有点交换:
if (!string.IsNullOrEmpty(params.test))
{
vq = vq.WhereRestrictionOn(c => c.test).IsIn(params.test.StartsWith(";") ? params.test.Substring(1).Split(';') : params.test.Split(';'));
}
为此:
vq = newShinyFunction(vq, params.test, (c => c.test));
答案 0 :(得分:0)
任何lambda表达式(如c =&gt; c.test)都会自然地转换为与其匹配的委托或表达式。在这种情况下,Func<typeofc, typeoftest>
或Expression<Func<typeofc, typeoftest>>
或Func<Object, Object>
就此而言。
检查你的api参考WhereRestrictionOn以查看它所采用的类型。使用它作为新闪亮函数的最终参数的类型。