c#为linq查询提取一个带lambda参数的方法

时间:2016-03-01 16:21:30

标签: c# linq nhibernate lambda

我有很多这种带有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));

1 个答案:

答案 0 :(得分:0)

任何lambda表达式(如c =&gt; c.test)都会自然地转换为与其匹配的委托或表达式。在这种情况下,Func<typeofc, typeoftest>Expression<Func<typeofc, typeoftest>>Func<Object, Object>就此而言。

检查你的api参考WhereRestrictionOn以查看它所采用的类型。使用它作为新闪亮函数的最终参数的类型。