c#提取linq查询lambda参数的方法
问题描述:
我有吨这种类型的条件查询参数与休眠。这需要进行某种封装,但我是linq查询的新手,不确定它是否完全可能。样的交换这样的:c#提取linq查询lambda参数的方法
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));
答
任何lambda表达式等(C => C.TEST)将自然地投射到一个委托或表达式匹配它的类型。在这种情况下,Func<typeofc, typeoftest>
或Expression<Func<typeofc, typeoftest>>
或Func<Object, Object>
。
检查WhereRestrictionOn的api参考以查看它需要的类型。将它用作新闪亮函数的最终参数的类型。
谢谢,'表达式>'是一个捕获。现在更清洁。 –
Robert