首页 > 代码库 > 在EF中Code First中实现无限递归

在EF中Code First中实现无限递归

EFCode 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);}

 

EFCode 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中实现无限递归