gpt4 book ai didi

NHibernate - 在孙子对象上设置获取模式

转载 作者:行者123 更新时间:2023-12-03 22:07:44 24 4
gpt4 key购买 nike

我有以下条件查询(使用 Lambda 扩展):

var workflowResult = repository.GetSession() 
.CreateCriteria<Core.Domain.Application>()
.SetFetchMode<Core.Domain.Application>(app => app.ApplicationWorkflows, FetchMode.Join)
.SetResultTransformer(new DistinctRootEntityResultTransformer())
.Future<Core.Domain.Application>();

这工作正常。每个应用程序急切地加载ApplicationWorkflows 集合。但是,我想更深入一点并加载每个 ApplicationWorkflow 的 ApplicationStatus 对象。我可以用下面的 HQL 来做到这一点,但想翻译成标准:

var workflowQuery = "SELECT DISTINCT app" + 
" FROM Application app" +
" JOIN FETCH app.ApplicationWorkflows awf" +
" JOIN FETCH awf.ApplicationStatus";

有人建议我使用以下内容,但在所有情况下都无法正常工作:

.SetFetchMode<Core.Domain.Application>(app => app.ApplicationWorkflows[0].ApplicationStatus, FetchMode.Join)

最佳答案

试试这个。

var workflowResult = repository.GetSession() 
.CreateCriteria<Core.Domain.Application>()
.CreateAlias("ApplicationWorkflows", "awf")
.SetFetchMode("ApplicationWorkflows", FetchMode.Join)
.SetFetchMode("awf.ApplicationStatus", FetchMode.Join)
.SetResultTransformer(new DistinctRootEntityResultTransformer())
.Future<Core.Domain.Application>();

关于NHibernate - 在孙子对象上设置获取模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3199032/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com