【发布时间】:2017-11-08 10:31:40
【问题描述】:
我有两个 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,
};
基本上我只需要从第二个查询中排除第一个查询结果。如果这是一个简单的问题,我深表歉意,但我是初学者,所以...谢谢!
【问题讨论】:
-
看看
Except函数。它完全符合您的要求。 -
!sysproWarehouses.Any(你的测试在这里)或 cramopy 所说的
-
您还可以在现有查询中添加
where子句,并在其中检查!sysproWarehouses.Contains()函数。 -
看起来你想对两组进行差异。看看EF提供的Except函数。以下链接包含一个足够好的解释:c-sharpcorner.com/UploadFile/87b416/…