c# - 具有父子关系的自引用表使用 LINQ 表示文件树

标签 c# database linq sql-server-2008 linq-to-entities

我有一个表示文件树结构的数据库表。

Files
- Id (int, primary key)
- Name
- ParentId (int, foreign key to Files.Id)

如何编写一个方法来确保 child 的所有 parent 都不能将 child 的 Id 作为其 ParentId,以防止在显示树结构时出现无限循环。

另外,有没有更高效的设计方式?

更新: 我使用支持层次结构 ID 的 sql server 2008,这会有帮助吗? (我不确定EF是否支持)

最佳答案

您可能会添加一个“级别”值,然后您只需要确保没有节点的父节点的级别大于或等于它自己的级别。添加节点时,将新的子节点设置为父节点级别 + 1。

干杯

关于c# - 具有父子关系的自引用表使用 LINQ 表示文件树,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11400373/

相关文章:

c# - 如何比较 2 个逗号分隔的字符串值并在现有列表中的同一位置进行更新?

c# - 使用 .net 转换 cdr (Corel Draw)

c# - 将 X509 用于 WCF 安全性是否固有地因每个请求的新 channel 而变慢?

php - 用于 ips 的大型 mysql 数据库

python - 检查对象是否存在

database - 使用 Cassandra + PHP 的惯用客户端库?

c# - 请求数组到另一个类

c# - 这个 Actor 代码在做什么?

c# - object.ReferenceEquals 或 == 运算符?

c# - 使用 linq 排序键值对