我正在尝试检索父实体的所有集合(非笛卡尔积),但无法弄清楚如何获得孙子。表结构如下:
以下代码获取我的父母及其 Child1 和 Child2 集合,以及它的 ParentChild3 集合,但我不知道如何构造查询以获取 Child3 孙子(并将它们推迟到 Future())。
var parent = _session
.QueryOver<Parent>()
.Where(x => x.Id == id)
.Future<User>();
var children1 =_session
.QueryOver<Parent>()
.Where(x => x.Id == id)
.Fetch(x => x.Children1).Eager
.Future<Parent>();
var children2 =_session
.QueryOver<Parent>()
.Where(x => x.Id == id)
.Fetch(x => x.Children2).Eager
.Future<Parent>();
var parentChildren3 =_session
.QueryOver<Parent>()
.Where(x => x.Id == id)
.Fetch(x => x.ParentChildren3).Eager
.Future<Parent>();
// how to get children3, now?
return parent.SingleOrDefault();
半相关:这是获得所有收藏的最佳方式吗?使用通过连接获得结果的查询是否更好(并且可能)?