我有一个表示文件树结构的数据库表。
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/