2012-02-24 20 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'條款沒有任何進一步的解釋。我希望/覺得它不是答案的關鍵。 – 2012-02-24 09:26:29

相關問題