2010-06-01 97 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();`