Raven DB给了我这条消息
不支持的方法:包含
代码:
using (var d = DataLayer.RavenDB.d.OpenSession())
{
foos = d.Query<Foo>().Where(foo => ids.Contains(foo.Id)).Skip(i * 10).Take(10).ToList();
}
如何检索我的列表foos
?
答案 0 :(得分:2)
看起来您正在尝试按ID查询多个文档。在Raven中不建议通过Id查询。加载它们。有一个需要多个ID的重载。
foos = session.Load<Foo>(ids);
如果这是其他属性而不是ID,则使用item.In(list)
而不是list.Contains(item)
。
答案 1 :(得分:1)
如果你想根据id列表加载文档,那么按照Matt建议的解决方案,性能明智的Load()是最好的方法。
但是如果你仍然希望使用Query(使用一些contiions)来改变代码,那么
using (var d = DataLayer.RavenDB.d.OpenSession())
{
foos = d.Query<Foo>()
.Where(foo => foo.Id.In<string>(ids))
.Skip(i * 10)
.Take(10).ToList();
}