2009-08-19 8 views
2

Celui-ci semble être assez simple, mais je ne pouvais pas tout à fait comprendre ou trouver quelque chose dessus. Ma requête ressemble à ceci:Champs ALiasing dans linq

from o in objects 
      select new 
      { 
      o.ID, 
      o.member.Number, 
      o.member.Date, 
      o.member.total, 
      o.SequenceNumber, 
      o.InputDate, 
      o.Amount, 
      o.Discount, 
      Balance = o.Balance(), 
      o.otherMember.CreatedBy, 
      } 

Notez qu'il ya un certain nombre de fois où je l'accès o.member. Dans la vraie vie, cela ressemble à 20 fois (j'agrège un ensemble de données pour une grille). Qu'est-ce que je voudrais faire est de pouvoir le faire référence comme ceci:

select new 
      { 
      o.ID, 
      m.Number, 
      m.Date, 
      m.total, 
      o.SequenceNumber, 
      o.InputDate, 
      o.Amount, 
      o.Discount, 
      Balance = o.Balance(), 
      o.otherMember.CreatedBy, 
      } 

Mais je ne suis pas sûr de la bonne syntaxe à utiliser. Est-il possible de l'alias en haut, ou avec une jointure en quelque sorte?

Répondre

9

Vous pouvez faire:

from o in objects 
let m = o.member 
select new { /* as per question */ }; 
+1

whaaat ... des thats génial –

+0

+1 à Allen pour me faire rire. :RÉ –

Questions connexes