// Sample query static TreeList <Stakeholder> Query(StakeholdersContext db, int n = 10) { var randomizer = new Randomizer(); var maxId = db.Stakeholders.Max(x => x.Id); var ids = Enumerable.Range(0, n).Select(_ => randomizer.Number(1, maxId)).ToList(); var start = DateTime.Now; var resultIds = db.StakeholderContacts.FromSqlInterpolated($"CALL contacts_offspring({string.Join(",", ids)},{null})") .ToList() .SelectMany(c => new[] { c.RoleGiverId, c.RoleBearerId }) .Distinct() .ToList(); var end1 = (DateTime.Now - start).TotalSeconds; var stakeholders = db.Stakeholders.Where(x => resultIds.Contains(x.Id)) .Include(x => x.Subordinates) .ThenInclude(c => c.RoleGiver) .Include(x => x.Subordinates) .ThenInclude(c => c.RoleBearer) .ToList(); start = DateTime.Now; var tree = stakeholders.ToStakeholdersTree(); var end2 = (DateTime.Now - start).TotalSeconds; return(tree); }
public Seeder(StakeholdersContext dbContext) { _db = dbContext; }