2014-10-03 38 views
0

我正在使用RavenDB 2.5.2879,我注意到一個問題。這是一個錯誤?RavenDB索引查詢:OfType <T>().LastOrDefault()不支持

當我使用FirstOrDefault()時,查詢效果很好。

session.Query<QueryModel>("App/Entities").Where(x => x.Tag == "Clients").OfType<Client>().FirstOrDefault(); 

當我使用LastOrDefault(),我得到一個異常「無法理解的表達:。凡(X =>(x.Tag == 「客戶」))OfType()LastOrDefault(。 )「

session.Query<QueryModel>("App/Entities").Where(x => x.Tag == "Clients").OfType<Client>().LastOrDefault(); 

回答

5

這是設計。如果支持LastLastOrDefault,Raven將不得不遍歷可能的大數據集以返回單個項目。

取而代之,使用FirstOrDefault並提供降序排列順序。

session.Query<QueryModel>("App/Entities") 
     .Where(x => x.Tag == "Clients") 
     .OrderByDescending(x => x.Something) 
     .OfType<Client>() 
     .FirstOrDefault(); 

也是考慮不一些排序順序,甚至升序排序是有點意思的。如果您需要第一個或最後一個,您應該首先應用排序順序。