拼接linq查詢表示式

2021-06-28 11:50:43 字數 1221 閱讀 2256

1 比如在做資料庫查詢時面對前端可能多樣的查詢條件是,有時拼接查詢條件能很方便的處理這種情況,如下**所示

public glistresultgetlist(hashtable ht, int skip, int top)

if (ht.contains("roleid"))

select = select.and(subselect);

}if (ht.contains("name"))

} var g = dal.getall(select, null, skip, top, orderby); return g; }

dal.getall 的介面如下

glistresultgetall(expression> query,

expression> select, int skip, int top,

expression> order = null, bool isdesorder = false);

原生的linq暫還不支援select.and select.or 這種寫法,要借助這個擴充套件類linqhelper,如下:

using system;

using system.collections.generic;

using system.linq;

using system.linq.expressions;

using system.text;

using system.threading.tasks;

namespace hq.backstage.business

public static expression> or(this expression> one, expression> another)

internal class parameterreplacer : expressionvisitor

public parameterexpression parameterexpression

public expression replace(expression expr)

protected override expression visitparameter(parameterexpression p)}}

}

這樣的話做查詢處理就非常方便

查詢表示式 LINQ 簡介

在上兩篇我介紹了c 3.0新語特性和改進,這些新特性在我們編寫程式時為我們提供了非常大的幫助。從這篇開始,我們開始一起來 linq。linq是language integrated query的簡稱,它是整合在.net程式語言中的一種特性。已成為程式語言的乙個組成部分,在編寫程式時可以得到很好的編譯...

查詢表示式 LINQ 簡介

在上兩篇我介紹了c 3.0新語特性和改進,這些新特性在我們編寫程式時為我們提供了非常大的幫助。從這篇開始,我們開始一起來 linq。linq是language integrated query的簡稱,它是整合在.net程式語言中的一種特性。已成為程式語言的乙個組成部分,在編寫程式時可以得到很好的編譯...

查詢表示式 LINQ 簡介

在上兩篇我介紹了c 3.0新語特性和改進,這些新特性在我們編寫程式時為我們提供了非常大的幫助。從這篇開始,我們開始一起來 linq。linq是language integrated query的簡稱,它是整合在.net程式語言中的一種特性。已成為程式語言的乙個組成部分,在編寫程式時可以得到很好的編譯...