RavenDB查询:必须使用Customize()而不是Include()

RavenDB查询:必须使用Customize()而不是Include(),ravendb,Ravendb,使用此查询(使用Include而不是Customize)时,我收到一个错误,即我超过了每个会话允许的请求数(30): 但是,上述查询会导致错误: 仅按id查询的尝试被阻止,您应该使用call 会话加载(“应用程序/2017”);而不是 session.Query().Where(x=>x.Id==“applications/2017”) 您可以通过指定 documentStore.Conventions.AllowQueriesOnId=true;,但事实并非如此 仅出于向后兼容的原因推荐和提供

使用此查询(使用
Include
而不是
Customize
)时,我收到一个错误,即我超过了每个会话允许的请求数(30):

但是,上述查询会导致错误:

仅按id查询的尝试被阻止,您应该使用call 会话加载(“应用程序/2017”);而不是 session.Query().Where(x=>x.Id==“applications/2017”)

您可以通过指定 documentStore.Conventions.AllowQueriesOnId=true;,但事实并非如此 仅出于向后兼容的原因推荐和提供

我必须设置
AllowQueriesOnId=true
,因为这是我让它工作的唯一方法

我在第一个查询中做错了什么导致包含不起作用?


顺便说一句,他遇到了同样的问题,他必须使用
定制
。不过,我想正确地执行此操作。

我不确定为什么load没有为您执行此操作,您使用的是哪个版本的raven?我刚刚在Raven 2.5 build 2700中对此进行了测试,include正在一次请求中为我带回信息

无论如何,由于负载不像我预期的那样工作,我将切换到一组惰性查询,以在两个服务器往返中获得您想要的

另一个可能更适合您的选项(取决于您对所有数据的实际操作)是转换器


希望这能有所帮助。

我不知道为什么负载没有为您这样做,您使用的是哪个版本的raven?我刚刚在Raven 2.5 build 2700中对此进行了测试,include正在一次请求中为我带回信息

无论如何,由于负载不像我预期的那样工作,我将切换到一组惰性查询,以在两个服务器往返中获得您想要的

另一个可能更适合您的选项(取决于您对所有数据的实际操作)是转换器


希望对您有所帮助。

querysingleresultandsetag
是非标准的。如果您仍然存在此问题,请同时发布该函数的代码,以便我们可以看到整个问题。
querySingleResultandSetTag
是非标准的。如果您仍然有这个问题,那么请发布该函数的代码,以便我们可以看到整个过程。
ApplicationServer appServer = QuerySingleResultAndSetEtag(session => session
    .Include<ApplicationServer>(x => x.CustomVariableGroupIds)
    .Include<ApplicationServer>(x => x.ApplicationIdsForAllAppWithGroups)
    .Include<ApplicationServer>(x => x.CustomVariableGroupIdsForAllAppWithGroups)
    .Include<ApplicationServer>(x => x.CustomVariableGroupIdsForGroupsWithinApps)
    .Include<ApplicationServer>(x => x.InstallationEnvironmentId)
    .Load <ApplicationServer>(id))
    as ApplicationServer;
appGroup.Application = QuerySingleResultAndSetEtag(session =>
    session.Load<Application>(appGroup.ApplicationId)) as Application;
ApplicationServer appServer = QuerySingleResultAndSetEtag(session =>
    session.Query<ApplicationServer>()
    .Customize(x => x.Include<ApplicationServer>(y => y.CustomVariableGroupIds))
    .Customize(x => x.Include<ApplicationServer>(y => y.ApplicationIdsForAllAppWithGroups))
    .Customize(x => x.Include<ApplicationServer>(y => y.CustomVariableGroupIdsForAllAppWithGroups))
    .Customize(x => x.Include<ApplicationServer>(y => y.CustomVariableGroupIdsForGroupsWithinApps))
    .Customize(x => x.Include<ApplicationServer>(y => y.InstallationEnvironmentId))
    .Where(server => server.Id == id).FirstOrDefault())
    as ApplicationServer;