我有两个linq查询,查询两个不同的实体。一个实体包含所有仓库,另一个实体包含我不需要的仓库。
我使用此查询来获取我不需要的所有仓库:
APK
这是我想要获得我需要的所有仓库的查询:
var sysproWarehouses = from i in sysproSession.Query<InvWarehouse>()
group i by i.Warehouse
into g
select new
{
g.Key
};
基本上我只需要从第二个查询中排除第一个查询结果。如果这是一个简单的问题我很抱歉,但我是初学者所以...谢谢!
答案 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)
您可以使用LINQ方法Except()
见https://msdn.microsoft.com/en-us/library/bb300779(v=vs.110).aspx