static void ShowEmployeesNameDepartmentTown_Fast() { Console.WriteLine("Fast selection of employees using INCLUDE"); using (var ctx = new TelerikAcademyEntities()) { foreach (var employee in ctx.Employees.Include("Department").Include("Address").Include("Address.Town")) { Console.WriteLine("Employee: {0}; Department: {1}; Town: {2}", employee.FirstName + " " + employee.LastName, employee.Department.Name, employee.Address.Town.Name); } } }
static void ShowEmployeesNameDepartmentTown_Slow() { Console.WriteLine("Slow selection of employees"); using (var ctx = new TelerikAcademyEntities()) { foreach (var employee in ctx.Employees) { Console.WriteLine("Employee: {0}; Department: {1}; Town: {2}", employee.FirstName + " " + employee.LastName, employee.Department.Name, employee.Address.Town.Name); } } }
static void ShowEmployeesFromTown_Fast(string town) { Console.WriteLine("Fast selection of employees reducing toList invokes"); using (var ctx = new TelerikAcademyEntities()) { List<Address> addressesFromTown = ctx.Addresses.Where(a => a.Town.Name == town).ToList(); List<Employee> employeesFromTown = addressesFromTown.SelectMany(a => a.Employees).ToList(); foreach (var employee in employeesFromTown) { Console.WriteLine("Employee: " + employee.FirstName + " " + employee.LastName); } } }