如前所述,here我正在努力使用LTree和正确的查询方式。我使用一个对象,包含LTree作为我的一个表上的列。这是对象的外观:
using Microsoft.EntityFrameworkCore;
public class MyObject
{
public Guid Id {get;set;}
public LTree LTreeColumn {get;set;}
....
}
字符串
如果不可能像预期的那样使用LTree-functions,这并不好,但也不是最坏的情况。但是如果有一种方法,可以基于LTree对集合进行排序和过滤,那就太好了。OrderBy
失败,因为缺少IComparable
实现。是否有替代方法?以及如何找到给定特定子路径的“树”上的第一个项目?
比如说,我有一个以Top
开头的结构,然后是Top.One
,Top.Two
,Top.One.One
等等。
现在我想在一个集合中找到最高的对象,从Top
开始。我如何在数据库和内存中做到这一点?
一般来说(基于公共子路径)如何正确计算<
或>
?
1条答案
按热度按时间nzkunb0c1#
这是我到目前为止发现的.如果有人知道得更好或更多,我非常感谢另一个答案。
所有的LTree函数都将被转换为查询。LTree将NLevel作为一个属性,它可以用于排序(作为查询,而不是在内存中):
第一个月
特定路径中的最高值:
字符串
如果我需要在内存集合中使用LTreeColumn的级别,我使用这些扩展方法:
型
比较MyObject的两个示例的级别:
型