我有一个子查询,其父项位于同一个表中。我需要孩子和父母的名字来建立我的孩子对象。 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。我应该关注这件事吗?如何将其转换为一个查询?我不正确地看待逻辑吗?
答案 0 :(得分:0)
我们使用两个不同的表解决了这个问题。首先是根(没有父母),第二个是所有孩子 - 每个孩子都有父母参考,所以你能够提供有效的查询,例如删除root(和所有孩子)。