2015-11-15 33 views
0

我有這個LINQ查詢LINQ的FirstOrDefault清單,在查詢內部

var numberGroups = 
      from n in VISRUBs.Where(a => a.VISANA.VISITE.DATEVIS <= d && a.VISANA.VISITE.PANUM == p) 
      group n by n.RUBRIQUE into g 

      select new { 

       RemainderCHAPLIB = g.Key.ANALYSE.CHAPITRE.LIBELLE, 
       RemainderLIB = g.Key.LIBELLE, 

       RemainderRUNUM = g.Key.RUNUM, 
       vals = from vlist in g.OrderByDescending(a=>a.VISANA.VISITE.DATEVIS) 
       select vlist.VALEUR 
       }; 

至極給我這個結果Linqpad LinqPadResult

我想是從最後一個字段選擇第一和第二項( vals)這是一個列表。

我已經試過這樣:

   var numberGroups = 
      from n in VISRUBs.Where(a => a.VISANA.VISITE.DATEVIS <= d && a.VISANA.VISITE.PANUM == p) 
      group n by n.RUBRIQUE into g 

      select new { 

       RemainderCHAPLIB = g.Key.ANALYSE.CHAPITRE.LIBELLE, 
       RemainderLIB = g.Key.LIBELLE, 

       RemainderRUNUM = g.Key.RUNUM, 
       vals = from vlist in g.OrderByDescending(a =>    a.VISANA.VISITE.DATEVIS) 
       select vlist.VALEUR 
       }; 


      var lst = from n in numberGroups 
      select new 
      { 
       RemainderCHAPLIB = n.RemainderCHAPLIB, 
       RemainderLIB = n.RemainderLIB, 

       RemainderRUNUM = n.RemainderRUNUM, 
       VAL = n.vals.FirstOrDefault() 
      }; 

,但它沒有工作,我得到了一個異常

動態SQL ErrorSQL錯誤代碼= -104Token未知 - 54行,列1OUTER

歡迎任何幫助

回答

0

找到了!

var lst = from n in numberGroups.ToList() 
      select new 
      { 
       RemainderCHAPLIB = n.RemainderCHAPLIB, 
       RemainderLIB = n.RemainderLIB, 

       RemainderRUNUM = n.RemainderRUNUM, 
       VAL = n.vals.FirstOrDefault(), 
       ANT = n.vals.Skip(1).FirstOrDefault() 
      };