2015-06-27 61 views
1

我在LINQ中有以下查詢作爲示例。是否可以保存GetCalendarResources函數的結果,這樣我就不必多次調用它了?謝謝。在LINQ中重用函數結果

var query = from T in query2.AsEnumerable() 
      select new Event 
      { 
       resource = GetCalendarResources(T.eventID), 
       text = GetCalendarResources(T.eventID) + T.eventName 
      }; 
+0

這個查詢是非常低效的。你正在做n + 1個數據庫調用,並且沒有過濾。 – Aron

+0

這不是我正在使用的實際查詢。我只是把它寫成一個例子。 –

回答

1

可以使用let關鍵字,它給你自由使用其價值的一個新的水平:

var query = from T in query2.AsEnumerable() 
      let res= GetCalendarResources(T.eventID) 
      select new Event 
      { 
       resource =res, 
       text = res + T.eventName 
      }; 
+0

謝謝。工作很好。我以前用過它,但我忘了它。 –