日常开发中,经常会碰到一些自引用的实体,比如系统菜单、目录实体,这类实体往往自己引用自己,所以我们必须学会使用Code First来建立这一类的模型....以下是自引用表的数据库关系图:
ok,下面开始介绍从零创建一个Code First版的自引用模型.
1、往目标项目中添加EF包,通过NuGet程序包添加
导入相关的程序集.
2、创建自引用实体类...level).ToString(), cat.Name);
cat.Subcategories.ForEach(child => Print(child, level + 1));//递归...,直到最后遍历的节点没有子节点集合,则跳出递归循环
}
简单解释下测试代码的逻辑:
(1)、从所有的节点中获取没有父节点的节点,该节点为顶级节点
(2)、然后通过递归将该顶级节点下面的所有的子节点全部遍历出来...,每当递归到的节点含有子节点集合,则递归的深度加1.当一个继承链遍历完毕,继续遍历第二个继承链.