2009-08-19 50 views
2

這一個看起來應該是非常簡單的,但我無法弄清楚它或找到任何東西。 我的查詢看起來是這樣的: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, 
      } 

通知有相當哪裏我訪問o.member幾次。在現實生活中,這就像20次(我爲一個網格聚合一個數據集)。我想要做的是能夠像這樣引用它:

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

但我不確定使用正確的語法。是否有可能在頂部將其別名或以某種方式加入?

回答

9

你可以這樣做:

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

whaaat ......那真棒 – 2009-08-19 16:36:16

+0

+1艾倫讓我發笑。 :d – 2009-08-19 16:44:14