0
我正在使用具有3個屬性的Search Class:Machine,Action,Part。
搜索頁面有3個文本框控件供用戶搜索這些屬性。有沒有一種有效的方法來搜索這些包含值的屬性的任何組合?
因此,如果用戶不爲null或爲空,則用戶可能會搜索所有3個屬性或屬性的任意組合。檢查複雜對象上的字符串屬性是否包含term,如果不爲null或爲空
我建立邏輯查詢數據庫使用EF基於上述。
我正在使用具有3個屬性的Search Class:Machine,Action,Part。
搜索頁面有3個文本框控件供用戶搜索這些屬性。有沒有一種有效的方法來搜索這些包含值的屬性的任何組合?
因此,如果用戶不爲null或爲空,則用戶可能會搜索所有3個屬性或屬性的任意組合。檢查複雜對象上的字符串屬性是否包含term,如果不爲null或爲空
我建立邏輯查詢數據庫使用EF基於上述。
我做這樣的東西通過以下方式(作爲一個擴展法):
public static IQueryable<MyClass> Filter(this IQueryable<MyClass> items, string machineQuery, string actionQuery, string partQuery)
{
if (!String.IsNullOrWhiteSpace(machineQuery)
items = items.Where(i => i.Machine.Contains(machineQuery);
if (!String.IsNullOrWhiteSpace(actionQuery)
items = items.Where(i => i.Action.Contains(actionQuery);
if (!String.IsNullOrWhiteSpace(partQuery)
items = items.Where(i => i.Part.Contains(partQuery);
return items;
}
此被轉換成通過一個EF DB-側查詢。然後你使用它:
var filteredItems = dbContext.MyClasses.Filter(machineQuery, actionQuery, partQuery);
這應該是最有效的方法+1 – Toshi