我希望通过此查询中的数据进行区分或分组

时间:2012-02-24 07:21:57

标签: linq group-by distinct

这是我的询问。

var query = from o in context.Orders
            join c in context.Customers on
                o.CustomerId equals c.CustomerId  
            join ca in context.CustomerAttributes on
                o.CustomerId equals ca.CustomerId
            where (String.IsNullOrEmpty(customerEmail) ||
                      c.Email.Contains(customerEmail)) &&
                  (String.IsNullOrEmpty(firstName) ||
                      (ca.Key.Contains("FirstName") &&
                       ca.Value.Contains(firstName))) &&
                  (String.IsNullOrEmpty(lastName) ||
                      (ca.Key.Contains("LastName") &&
                      ca.Value.Contains(lastName))) &&
                  (String.IsNullOrEmpty(phoneNumber) ||
                      (ca.Key.Contains("PhoneNumber") && 
                      ca.Value.Contains(phoneNumber))) &&
                  (!startTime.HasValue || 
                      startTime.Value <= o.CreatedOn) &&
                  (!endTime.HasValue ||
                      endTime.Value >= o.CreatedOn) &&
                  (!orderStatusId.HasValue ||
                      orderStatusId == o.OrderStatusId) &&
                  (!paymentStatusId.HasValue ||
                      paymentStatusId.Value == o.PaymentStatusId) &&
                  (!shippingStatusId.HasValue ||
                      shippingStatusId.Value == o.ShippingStatusId) &&
                  !o.Deleted
            orderby o.CreatedOn descending
            select o;

var orders = query.ToList();
return orders;

我从此查询中获得了重复数据。现在我只想要来自此查询的不同数据。任何解决方案都会很明显。

1 个答案:

答案 0 :(得分:2)

只需使用Distinct Function

即可
var orders = query.Distinct().ToList();