0
在UI中,有一個下拉式參數爲'field'。它可以是一個特定的值,或者'All'是默認的,所有的行都與'field'值無關,需要被檢索。LINQ to SQL:where子句過濾器基於用戶輸入
如何在LINQ中編寫Where子句,以便如果用戶爲字段列提供值,則將其用作過濾器,否則從DB獲取所有行?
在UI中,有一個下拉式參數爲'field'。它可以是一個特定的值,或者'All'是默認的,所有的行都與'field'值無關,需要被檢索。LINQ to SQL:where子句過濾器基於用戶輸入
如何在LINQ中編寫Where子句,以便如果用戶爲字段列提供值,則將其用作過濾器,否則從DB獲取所有行?
您可以使用IQueryable<T>
作爲基礎爲您的LINQ查詢,並追加到它所有你需要:
例子:
string userInput = "";
using (var context = new EntityModel())
{
IQueryable<MyEntity> query = context.MyEntities;
if (!String.IsNullOrWhiteSpace(userInput))
query = query.Where(x => x.MyFilterableProperty == userInput);
return query.ToList();
}
+1;但刪除ToLIst()... – Pleun
爲什麼要刪除ToList()?它純粹是一個例子,它會導致查詢的執行。 – Khan
因爲你的答案的整個觀點是使用IQueryable和ToList消失... –
Pleun