从另一个LINQ查询中的一个查询中排除LINQ结果

时间:2017-11-08 10:31:40

标签: c# linq

我有两个linq查询,查询两个不同的实体。一个实体包含所有仓库,另一个实体包含我不需要的仓库。

我使用此查询来获取我不需要的所有仓库:

APK

这是我想要获得我需要的所有仓库的查询:

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

基本上我只需要从第二个查询中排除第一个查询结果。如果这是一个简单的问题我很抱歉,但我是初学者所以...谢谢!

3 个答案:

答案 0 :(得分:2)

以下是您可以做的事情:

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);

注意: - 结果包含已排除的项目

答案 1 :(得分:0)

我认为您需要Except,但在<{1}}之后,因为您的两个列表来自不同的表格。像这样:

Select

请注意,我还更改了匿名类型中唯一的成员,以匹配第一个查询中的类型。

答案 2 :(得分:0)