【发布时间】:2017-08-04 16:49:11
【问题描述】:
我需要返回与ShipTo 不同的Customers 记录的所有列。我使用Distinct() 尝试了此查询,但它返回重复记录:
var query = (from o in Orders
from c in Customers
where (from x in CustomerOrders
where x.CustomerId == customerId
&& !x.OrderType.Equals('A')
select x.OrderId).Contains(o.OrderId)
&& c.CustomerId == customerId
&& c.ShipTo == o.ShipTo
&& !o.OrderStatus.Equals('C')
select c).Distinct();
然后我尝试使用Group By 和First() 重写查询。我没有收到任何语法错误,但是在使用 LinqPad 进行测试时查询会引发异常。
var query = (from o in Orders
from c in Customers
where (from x in CustomerOrders
where x.CustomerId == customerId
&& !x.OrderType.Equals('A')
select x.OrderId).Contains(o.OrderId)
&& c.CustomerId == customerId
&& c.ShipTo == o.ShipTo
&& !o.OrderStatus.Equals('C')
group c by c.ShipTo into g
select g.First());
【问题讨论】:
-
“
Customer的所有列但与ShipTo不同”听起来很矛盾。
标签: linq