Fluent Nhibernate将两个查询合二为一

时间:2013-09-09 15:00:07

标签: fluent-nhibernate

我有一个子查询,其父项位于同一个表中。我需要孩子和父母的名字来建立我的孩子对象。 catch是parentID可以为null,因为并非每个子节点都有父节点:

var child = session.Query<Child>().FirstOrDefault(x => x.Value == value);
        if (child.ParentId != null)
        {
            child.ParentName = session.Query<Child>().FirstOrDefault(x => x.Id == child.ParentId).Name;
        } else
            child.ParentName = "";
 return child;

这看起来很混乱,主要是因为如果parentID为null,我不想要null。我应该关注这件事吗?如何将其转换为一个查询?我不正确地看待逻辑吗?

1 个答案:

答案 0 :(得分:0)

我们使用两个不同的表解决了这个问题。首先是根(没有父母),第二个是所有孩子 - 每个孩子都有父母参考,所以你能够提供有效的查询,例如删除root(和所有孩子)。

相关问题