0

我有一个子查询,它的父查询在同一个表中。我需要孩子和父母的名字来构建我的孩子对象。关键是 parentID 可以为空,因为并非每个孩子都有父母:

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 为空,我不想要空。我应该担心这个吗?如何将其转换为一个查询?我是不是看错了逻辑?

4

1 回答 1

0

我们已经使用两个不同的表解决了这个问题。首先是根(没有父级),其次是所有子级 - 每个子级都有对父级的引用,因此您可以提供有效的查询,例如删除根(和所有子级)。

于 2013-09-11T19:55:53.363 回答