2014-09-04 35 views
-3

我得到System.Data.Objects.ObjectResult執行存儲過程sp_GetCustSurveys,然後我遍歷結果集。裏面的主循環的,我想創建項目的子集(具有相同ID的產品清單):System.Data.Objects.ObjectResult的子集

using (MyObject_Surveys _db = new MyObject_Surveys()) 
     { 
      _db.CommandTimeout = 10000; 
      var rawSurveys = _db.sp_GetCustSurveys(); 
      foreach (var survey in rawSurveys) 
      { 
       var surveyMultipleLangs = rawSurveys.Where(w => w.Id.Contains("123")); 
         foreach (var itm in surveyMultipleLangs) 
         { 
          var myName = itm.Name; 
          var myLanguage = itm.Language; 
         } 
       .... 

當我通過子迭代,我得到錯誤: 「查詢結果不能被列舉不止一次「。請指教。謝謝。

+0

它打破了什麼? – 2014-09-04 17:37:04

+2

爲什麼你有一個外部'foreach',你沒有用外部foreach中的'survey'做任何事情,你只是再次使用'rawSurveys'。看到這個問題http://stackoverflow.com/questions/5723555/the-result-of-a-query-cannot-be-enumerated-more-than-once – Habib 2014-09-04 17:37:06

+0

我有一個新的對象,每個servey我正在填寫調查屬性。我只是跳過了代碼。我的問題是子集。我如何創建它? 「surveyMultipleLangs」(循環,轉換爲列表..)的任何操作強制導致錯誤的枚舉。 – 2014-09-04 17:44:06

回答

0

好的,明白了。我需要的僅僅是物化ObjectResult以便能夠再次查詢它: var rawSurveys = _db.sp_GetCustSurveys()。toList(); 它看起來很有效。