2016-03-01 29 views
0

我有噸這種類型的條件查詢參數與休眠。這需要進行某種封裝,但我是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)); 

回答

0

任何lambda表達式等(C => C.TEST)將自然地投射到一個委託或表達式匹配它的類型。在這種情況下,Func<typeofc, typeoftest>Expression<Func<typeofc, typeoftest>>Func<Object, Object>

檢查WhereRestrictionOn的api參考以查看它需要的類型。將它用作新閃亮函數的最終參數的類型。

+0

謝謝,'表達式>'是一個捕獲。現在更清潔。 – Robert