Esempio n. 1
0
        // 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);
        }
Esempio n. 2
0
 public Seeder(StakeholdersContext dbContext)
 {
     _db = dbContext;
 }