2009-08-19 11 views
2

Dieser scheint wie es sollte ziemlich einfach sein, aber ich konnte es nicht ganz herausfinden oder nichts darauf finden. Meine Frage etwa wie folgt aussieht:ALiasing Felder in 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, 
      } 

Hinweis gibt es durchaus ein paar Mal, wo ich o.member zugreifen. Im wirklichen Leben ist das etwa 20 mal (ich bin ein Datensatz für ein Raster aggregieren). Was ich tun möchte, ist in der Lage, es so zu verweisen:

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

Aber ich bin mir nicht sicher, die richtige Syntax zu verwenden. Ist es möglich, es oben zu aliasieren, oder mit einem Join?

Antwort

9

können Sie tun:

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

whaaat ... awesome –

+0

+1 Allen das ist für die Herstellung mich zum Lachen. : D –