首页 > 代码库 > 在EF中Code First中实现无限递归
在EF中Code First中实现无限递归
在EF中Code First中实现无限递归
类: Module
属性:Module.Parent, Module.ChildrenModules
public IEnumerable<Module> RootModules(){ using (DbContext context = new DbContext()) { IRepository<Module> rm = new Repository<Module>(context); IList<Module> modules = rm.Set.Where(p => p.ParentModule == null).ToList(); foreach (Module m in modules) { GetModules(m, rm); } return modules; }}protected void GetModules(Module module, IRepository<Module> rm){ IList<Module> modules = rm.Set.Where(p => p.ParentModule.ID == module.ID).ToList(); module.ChildrenModules.Concat(modules); foreach (Module m in modules) GetModules(m, rm);}
在EF中Code First中实现无限递归
类: Module
属性:Module.Parent, Module.ChildrenModules
public IEnumerable<Module>RootModules()
{
using (DbContext context = new DbContext())
{
IRepository<Module> rm = newRepository<Module>(context);
IList<Module> modules =rm.Set.Where(p => p.ParentModule == null).ToList();
foreach (Module m in modules)
{
GetModules(m, rm);
}
return modules;
}
}
protected void GetModules(Module module,IRepository<Module> rm)
{
IList<Module> modules = rm.Set.Where(p => p.ParentModule.ID ==module.ID).ToList();
module.ChildrenModules.Concat(modules);
foreach (Module m in modules)
GetModules(m, rm);
}
在EF中Code First中实现无限递归