Ravendb奇怪的查询行为

时间:2014-04-03 16:13:44

标签: 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 :(得分: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;