2012-02-24 2 views
2

это мой запрос.Я хочу отличную или группу данных по этому запросу

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; 

У меня есть данные повторения по этому запросу. теперь я хочу только отдельные данные из этого запроса. любое решение было бы заметным.

ответ

2

Просто используйте определенную функцию

var orders = query.Distinct().ToList(); 
+0

FYI: Я не буду пытаться понять, что вы делаешь в том, что 'where' положение без каких-либо дальнейших объяснений ... Я надеюсь/думаю, что это не имеет решающего значения для ответа. –

Смежные вопросы