簡體   English   中英

檢查復雜對象上的字符串屬性是否包含條件,如果不為null或為空

[英]Check if string properties on a complex object contain term if not null or empty

我正在使用具有3個屬性的搜索類:機器,動作,零件。
“搜索”頁面具有3個文本框控件,供用戶搜索這些屬性。 有沒有一種有效的方法來搜索包含值的這些屬性的任何組合?
因此,用戶可以搜索所有3個屬性或屬性的任意組合(如果它們不為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);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM