2010-06-01 95 views
0

Morning all'Random'Orderby in webservice using LINQ To Entities

現在我知道這是有理由的,但是我的小小腦袋無法繞開它。

我使用的web服務,通​​過數據拉至WEBP [年齡和有是迄今爲止通過從UUF1提取數據如下:

public string[] GetBuyer(string Memberkey) 
     { 
      try 
      { 
       WebService.EntitiesConnection buyer = new WebService.EntitiesConnection(); 

       return buyer.tblProducts 
         .Where(p => p.MemberId == Memberkey) 
         .OrderBy(p => p.UnitUserfield1) 
         .Select(p => p.UnitUserfield1) 
         .Distinct() 
         .ToArray(); 
      } 
      catch (Exception) 
      { 
       return null; 
      } 
     } 

這工作得很好,並通過,但在拉數據奇怪的順序。我期望的結果是A B C D E F,它似乎正在返回A C E B D F.

請問有人能指出我的錯誤嗎?

回答

1

做你的OrderBy最後,我已經看到這之前與LinqToSql,OrderBy之前Distinct導致它生成沒有OrderBy在其中的SQL。

+0

我已經試過了,但實現這個的時候,我收到「‘串’不包含‘UnitUserfield1’的定義,並沒有擴展方法‘Unitiuserfield1’接受一個類型的第一個參數'string'可能被發現「錯誤。我不知道如何解決那個壞男孩。 – MrDean 2010-06-01 11:50:21

+0

您處理IEnumerable 集合那麼只是做.OrderBy(p => p); – 2010-06-01 12:15:15

+0

頂級男人......謝謝你。 對於任何人想要的最終的代碼: 返回buyer.tblProducts 。凡(p值=> p.MemberId == Memberkey) 。選擇(p值=> p.UnitUserfield1) .Distinct() .OrderBy(對=> p) .ToArray(); – MrDean 2010-06-01 12:19:32

0

頂部,頂級男人......謝謝你本。對於任何人想要的最終代碼:

return buyer.tblProducts 
.Where(p => p.MemberId == Memberkey) 
.Select(p => p.UnitUserfield1) 
.Distinct() 
.OrderBy(p => p) 
.ToArray();`