2010-06-01 4 views
0

Matin tousOrderby « Aléatoire » en webservice LINQ aux entités

Maintenant, je sais qu'il ya une raison à cette odering mais mon petit cerveau minuscule ne peut pas obtenir ma tête autour d'elle.

J'utilise un webservice pour passer à travers les données à un webp [âge et avoir les éléments suivants qui est jusqu'à présent en tirant des données par le biais de 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; 
      } 
     } 

Cela fonctionne bien et tire les données à travers mais dans un ordre étrange. Où je m'attendrais à des résultats de A B C D E F, il semble retourner A C E B D F.

Quelqu'un pourrait signaler l'erreur dans mes moyens s'il vous plaît?

Répondre

1

Faites votre commandeEn dernier, j'ai déjà vu cela avec LinqToSql, ayant le OrderBy avant que le Distinct l'a fait générer du SQL sans OrderBy dedans.

+0

J'ai essayé, mais la mise en œuvre, je recevoir " « string » ne contient pas une définition pour « UnitUserfield1 » et aucune méthode d'extension « Unitiuserfield1 » accepter un premier argument de type 'string' pourrait être trouvé "erreur. Je ne sais pas comment aborder ce mauvais garçon. – MrDean

+0

Votre traitant avec une collection IEnumerable par alors alors juste faire .OrderBy (p => p); –

+0

Top, top man ... merci Ben. Pour ceux qui veulent le code final: buyer.tblProducts de retour Aux endroits où les (p => == p.MemberId MemberKey) .Select (p => p.UnitUserfield1) .Distinct() .OrderBy (p => p) .ToArray(); – MrDean

0

Top, bonhomme ... merci Ben. Pour tous ceux qui veulent le code final:

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