簡體   English   中英

使用可能為空的列表使用EF6查詢

[英]Querying with EF6 using potentially empty Lists

我有一個使用3 string[]的函數,然后使用EF6查詢我的數據庫以嘗試找到匹配項。 列表中可以沒有任何變量,一個或多個變量。

using (var db= new Db(ConnectionString))
{
    var results =
                await
                    db.dbases.Where(
                                w =>
                                    portfolioSelected.Any(a => a == w.portfolio) &&
                                    statusSelected.Any(a => a == w.statusname) &&
                                    deskSelected.Any(a => a == w.assignedto)
                                ).ToListAsync();
}

嘗試此查詢時,我得到的結果為零。

我該怎么寫,以便3個列表可以有任何組合,包括為空,並且得到想要的結果?

根據Jeroen Heiers的評論,我能夠通過檢查string[]為空並分部分創建查詢來分解查詢。

        using (var db = new Db(ConnectionString))
        {
            IQueryable<dbase> query = cmax.dbases.Where(w => w != null);
            var results = new List<dbase>();

                    if (portfolioSelected != null)
                        query = query.Where(w => portfolioSelected.Any(a => a == w.portfolio));
                    if (statusSelected != null)
                        query = query.Where(w => statusSelected.Any(a => a == w.statusname));
                    if (deskSelected != null)
                        query = query.Where(w => deskSelected.Any(a => a == w.assignedto)); break;


            results = await query.ToListAsync();
        }

暫無
暫無

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

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