ravendb中的多个嵌套where子句

ravendb中的多个嵌套where子句,ravendb,Ravendb,我正在尝试将此查询从EF迁移到ravendb DateTime interval; IList<string> excludedUserNames; return this.ravenSession.Query<User>() .Where(u => u.NotifyOnNewForumPost && (u.LastForumsNotification < u.LastVisit || u.Last

我正在尝试将此查询从EF迁移到ravendb

DateTime interval;
IList<string> excludedUserNames;

return this.ravenSession.Query<User>()
    .Where(u => 
        u.NotifyOnNewForumPost 
        && (u.LastForumsNotification < u.LastVisit || u.LastForumsNotification < interval))
    .Select(u => u.Email)
    .ToList();
日期时间间隔;
IList不包括耳环;
返回此.ravenSession.Query()
.其中(u=>
u、 NotifyOnNewForumPost
&&(u.LastForumsNotificationu.Email)
.ToList();
使用Query似乎无法表达嵌套子句,因此我查看了DocumentQuery,但显然lucene不支持比较文档中的两个值

我是否遗漏了文档中的某些内容(它似乎只处理简单的过滤?!),或者是否有其他方法(除了在内存中过滤)?

Raven不支持
.Contains(u.UserName)
。您可以使用(…)中的
。来代替:

return this.ravenSession.Query<User>()
    .Where(u => 
        u.NotifyOnNewForumPost 
        && (u.LastForumsNotification < u.LastVisit || u.LastForumsNotification < interval) 
        && !u.UserName.In(excludedUserNames))
    .Select(u => u.Email)
    .ToList();
返回this.ravenSession.Query()
.其中(u=>
u、 NotifyOnNewForumPost
&&(u.LastForumsNotificationu.Email)
.ToList();
希望这有帮助

Raven不支持
.Contains(u.UserName)
。您可以使用(…)
中的
。来代替:

return this.ravenSession.Query<User>()
    .Where(u => 
        u.NotifyOnNewForumPost 
        && (u.LastForumsNotification < u.LastVisit || u.LastForumsNotification < interval) 
        && !u.UserName.In(excludedUserNames))
    .Select(u => u.Email)
    .ToList();
返回this.ravenSession.Query()
.其中(u=>
u、 NotifyOnNewForumPost
&&(u.LastForumsNotificationu.Email)
.ToList();

希望这有帮助

在查询过程中,无法比较RavenDB中的两个值。不能这样做的原因是,这需要数据库引擎扫描所有文档以查找匹配项。
相反,创建一个索引,在索引时进行比较,并查询结果。

在查询过程中不能比较RavenDB中的两个值。不能这样做的原因是,这需要数据库引擎扫描所有文档以查找匹配项。
相反,创建一个索引,在索引时进行比较,并查询结果。

谢谢,这也是一个问题,我已经解决了。遗憾的是,where条款的问题仍然存在。我将更新问题以避免任何混淆。这种查询应该有效。你的错误是什么?谢谢,这也是一个问题,我已经知道了。遗憾的是,where条款的问题仍然存在。我将更新问题以避免任何混淆。这种查询应该有效。你的错误是什么?