(如果標題是不是代表這個問題,請告訴我,我不能拿出一個很好的簡短描述)在asp.NET動態查詢與SQL服務器
我試圖實施高級搜索功能爲我的Web應用程序。該搜索必須能夠搜索很多可能的組合。
如圖所示,每個組(AND或OR)可以有另一組可以相等或不相等的組。圖片應該導致看起來像這樣在where子句中:
WHERE (Application like '%User%' AND Host not like '%fjzhykjety%') OR (REMOTE_HOST like '%uykirlyy%' AND REMOTE_PORT not like '%55555%')
應用,主機和REMOTE_HOST是字符串,REMOTE_PORT是一個可空int類型。我也有一個必須可搜索的GUID。
在這個前端搜索是寫在角的時刻,給了我下面的JSON(JSON的依賴於嵌套組和條件)的例子:
{
"group": {
"operator": "OR",
"rules": [
{
"group": {
"operator": "AND",
"rules": [
{
"condition": "=",
"field": {
"name": "Application",
"type": "select"
},
"data": "User"
},
{
"condition": "<>",
"field": {
"name": "Host",
"type": "text"
},
"data": "fjzhykjety"
}
]
}
},
{
"group": {
"operator": "AND",
"rules": [
{
"condition": "=",
"field": {
"name": "REMOTE_HOST",
"type": "text"
},
"data": "uykirlyy"
},
{
"condition": "<>",
"field": {
"name": "REMOTE_PORT",
"type": "number"
},
"data": 55555
}
]
}
}
]
}
}
我需要一種方法來這個數據發送到我的.NET應用程序(使用REST API)並在數據庫中查詢它。我查看了動態linq進行查詢,但由於json文件的格式並不總是相同,因此很難在C#中爲它創建類,併爲此搜索構建動態linq查詢。
實現此高級搜索的最佳方式是什麼?
感謝您的回答,linqkit看起來很有希望爲AND和OR子句。但是,動態查詢必須能夠多次檢查相同的屬性。如下例所示: ![相同的屬性](http://i.imgur.com/eEbjIL8.png) –
有多個條件查詢,使用AND或OR子句構建。 Linqkit爲你提供了簡單的方法。你可以用最後一個方法給N次相同的屬性 –