我有以下代码作为Fluent NHibernate查询的一部分
session.Query<Project>()
.Where(r=>r.IsActive)
.FetchMany(r => r.ProjectDependencies)
.ThenFetch(r => r.DependencyProject)
.ThenFetch(r => r.Owner)
上面的代码工作正常,但问题是我现在要加入并加载一些额外的&#34;属性&#34;除了所有者(如上所述)之外还加入了DependencyProject
对象。所以我想做这样的事情:
session.Query<Project>()
.Where(r=>r.IsActive)
.FetchMany(r => r.ProjectDependencies)
.ThenFetch(r => r.DependencyProject)
.ThenFetch(r => r.Owner)
.AndAlsoFetch(r=>r.Status)
或者也许是这样:
session.Query<Project>()
.Where(r=>r.IsActive)
.FetchMany(r => r.ProjectDependencies)
.ThenFetch(r => r.DependencyProject)
.ThenFetch(r => r.Owner && r.Status)
无论如何,要对作为ThenFetch
的一部分引入的对象进行多次属性提取吗?
答案 0 :(得分:-1)
我现在无法测试,所以这可能会偏离基础,但这可能是一种可能的方法:
var query = session.Query<Project>()
.Where(r=>r.IsActive)
.FetchMany(r => r.ProjectDependencies)
.ThenFetch(r => r.DependencyProject);
query.ThenFetch(r => r.Owner).ToFuture();
query.ThenFetch(r => r.Status).ToFuture();
Project project = query.ToFuture().ToList();