2014-04-03 62 views
1

爲什麼這項工作:Ravendb奇怪的查詢行爲

var ret = Session.Query<ListingEvent>() 
         .TransformWith<ListingEventProfileTransformer, ListingEventDto>() 
         .ToList(); 

var ret2 = ret.Where(x => x.EventInstance.Slug == slug); 

return ret2; 

但這並不:

var ret = Session.Query<ListingEvent>() 
         .TransformWith<ListingEventProfileTransformer, ListingEventDto>() 
         .Where(x => x.EventInstance.Slug == slug); 

return ret; 

顯然,第一個1是沒有好處,因爲它需要將我的謂語前枚舉集合。

當然,他們都應該工作?!

回答

0

第二個查詢仍在IQueryable中,因此在您強制結果返回之前不會執行任何操作。試試這個:

var ret = Session.Query<ListingEvent>() 
         .TransformWith<ListingEventProfileTransformer, ListingEventDto>() 
         .Where(x => x.EventInstance.Slug == slug) 
         .ToList(); // Force the results to come back 

return ret;