score:2

Accepted answer

you need to recursively load permissiondefinitions that placed in the permissiongroupdefinitionentity.

first, you should load all permissiongroupdefinitionentities including its children using the following query :

var query = _dbcontext.permissiongroupdefinitionentity
            .asnotracking()
            .include(p => p.permissiondefinitions )
            .theninclude(p => p.children)
            .tolistasync();

since every permissiongroupdefinitionentity has a list of permissiondefinition you need a nested loops like this code :

foreach (var permissiongroupdefinitionentity in permissiongroupdefinitionentities)
{
    foreach (var permissiondefinitions in permissiondefinitions)
    {

    }
}

then in the inner loop you should call your recursive function.

see following link (sample for get all children recursively in entity framework core)

https://patrickdesjardins.com/blog/how-to-load-hierarchical-structure-with-recursive-with-entity-framework-5

this way has terrible performance and i don't recommend that.

in this case it's seems you must write a stored procedure in sql for better performance.

score:0

you can use .theninclude(i => ...) like so

var query = _context.permissiongroupdefinitionentity
  .asnotracking()
  .include(i => i.permissiondefinitions)
      .theninclude(i => i.group)
  .asqueryable();

edit:

var query = _context.permissiongroupdefinitionentity
  .asnotracking()
  .include(i => i.permissiondefinitions)
      .theninclude(i => i.children)
  .asqueryable();

Related Query

More Query from same tag