2012-10-26 32 views
2

中推斷出我的linq查詢的類型參數,我在linqpad中測試過,得到了結果。錯誤發生在最後一步,當我嘗試使用EntityVM ViewModel時。我真的不明白這個錯誤信息的含義。有人可以向我解釋,並告訴我如何解決它。謝謝。無法從查詢

錯誤消息:

 var entityVersions = EntityVersionRepository.Get().Where(x => x.Entity.ClientId == clientId); 


     var groups = from ev in entityVersions 
        group ev by ev.EntityId 
         into g 
         select g.OrderByDescending(x => x.TaxYear).FirstOrDefault(); 

     var result = from g in groups 
        select (en => new EntityVM 
             { 
              Name = en.EntityName, 
              Id = en.EntityId 
             }); 
+0

錯誤信息是什麼? – randoms

+0

對不起,它在標題中,忘了放在帖子裏。 – qinking126

回答

0

看起來這可能是因爲你沒有實際評估groups查詢(通過調用.ToList()或類似的東西「類型參數不能從查詢推斷」 )。請評價groups第一:

var groups = (from ev in entityVersions 
       group ev by ev.EntityId 
        into g 
        select g.OrderByDescending(x => x.TaxYear).FirstOrDefault()) 
      .ToList(); 

如果是這樣的問題,那麼它可能的原因,當你從查詢返回的具體類型,你不應該使用VAR一個典型的例子。如果您想將var groups更改爲List<Group> groups,那麼該代碼甚至不會編譯,因此您馬上就知道您並未實際評估該屬性(它將返回IQueryable<Group>代替)。