簡體   English   中英

從另一個查詢中的一個查詢中排除LINQ結果

[英]Exclude LINQ results from one query in another LINQ query

我有兩個linq查詢,查詢兩個不同的實體。 一個實體包含所有倉庫,另一個包含我不需要的倉庫。

我使用此查詢來獲取所有不需要的倉庫:

var sysproWarehouses = from i in sysproSession.Query<InvWarehouse>()
                            group i by i.Warehouse
                            into g
                            select new
                            {
                                g.Key 
                            };

這是我要獲取我需要的所有倉庫的查詢:

var stockEvaluation = from ib in mapicsSession.Query<ItemBalance>()
                                  where //I guess it needs to be done here
                                  orderby w.Description
                                  group ib by w.Description
                                  into g
                                  select new
                                  {
                                      Warehouse = g.Key,
                                  };

基本上,我只需要從第二個查詢中排除第一個查詢結果。 抱歉,這是一個簡單的問題,但是我是初學者,所以...謝謝!

您可以執行以下操作:

var sysproWarehouses = from i in sysproSession.Query<InvWarehouse>()
                            group i by i.Warehouse
                            into g
                            select new
                            {
                                g.Key 
                            };

var stockEvaluation = from ib in mapicsSession.Query<ItemBalance>()
                        orderby w.Description
                        group ib by w.Description
                        into g
                        select new
                        {
                            g.Key,
                        };

現在,從stockEvaluation列表中排除sysproWarehouses列表項:

var result = stockEvaluation.Except(sysproWarehouses);

注意:-結果包含排除的項目

我想您需要一個Except ,但是調用Select ,因為您的兩個列表來自不同的表。 像這樣:

var stockEvaluation = (from ib in mapicsSession.Query<ItemBalance>()
                      orderby w.Description
                      group ib by w.Description
                      into g
                      select new
                      {
                          g.Key,
                      }).Except(sysproWarehouses);

請注意,我還更改了匿名類型中的唯一成員,以匹配您的第一個查詢中的類型。

暫無
暫無

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

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