110,536
社区成员
发帖
与我相关
我的任务
分享
public class Department
{
[Key]
public Guid Id{get;set;}
public string Name{get;set;}
public Guid? ParentId{get;set;}
[ForeignKey("ParentId")]
public Department Parent{get;set;}
public virtual ICollection<Department> Children{get;set;}
}
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);
}
上边这种方法是执行了多次数据库查询的,我想知道有没有办法只查询一次数据库就能搞定