private void DoReadWork(SqliteDatabaseContext context, int index) { var items = context.From<Warrior>() .Map(w => w.ID) .Map(w => w.Name) .Join<Armour>((a, w) => a.WarriorID == w.ID) .Join<ArmourPart>((ap, a) => ap.ID == a.ArmourPartID) .Join<Weapon, Warrior>((w, wa) => w.ID == wa.WeaponID) .For<WarriorWithArmour>() .Map<Weapon>(w => w.Name, wa => wa.WeaponName) .Map<Armour>(a => a.Name, wa => wa.ArmourName) .Select(); WriteLog(index, items.Count()); }