public static void OrderByToList(EmployeesContext context) { var employees = context.Employees.Include("Department") .OrderBy(e => e.Department.Name) .ThenBy(e => e.FirstName) .ToList(); }
static void Main(string[] args) { EmployeesContext context = new EmployeesContext(); Stopwatch stopwatch = new Stopwatch(); long timePassed = 0L; int testCount = 1; // Amount of tests to perform for (int i = 0; i < testCount; i++) { // Clear all query cache context.Database.ExecuteSqlCommand("CHECKPOINT; DBCC DROPCLEANBUFFERS;"); stopwatch.Start(); // TODO: Method to execute query OptimizedQuery(context); stopwatch.Stop(); timePassed += stopwatch.ElapsedMilliseconds; stopwatch.Reset(); } TimeSpan averageTimePassed = TimeSpan.FromMilliseconds(timePassed / (double)testCount); Console.WriteLine(averageTimePassed); }
public static void QueryWithLazyLoading2(EmployeesContext context) { var employees = context.Employees.Where(u => u.Salary > 3000).ToList(); foreach (var e in employees) { string result = $"{e.FirstName} - {e.Department.Name} - {e.Address.AddressText}"; } }
public static void QueryWithEagerLoading2(EmployeesContext context) { List <Employee> employees = context.Employees.Include("Department").Include("Address").Where(u => u.Salary > 3000).ToList(); foreach (var e in employees) { string result = $"{e.FirstName} - {e.Department.Name} - {e.Address.AddressText}"; } }
public static void QueryWithLazyLoading3(EmployeesContext context) { var employees = context.Employees.Where(e => e.EmployeesProjects.Count == 1).ToList(); foreach (var e in employees) { string result = $"{e.FirstName} - {e.Department.Name}"; } }
public static void QueryWithEagerLoading3(EmployeesContext context) { List <Employee> employees = context.Employees.Include("Department").Include("EmployeesProjects") .Where(e => e.EmployeesProjects.Count == 1).ToList(); foreach (var e in employees) { string result = $"{e.FirstName} - {e.Department.Name}"; } }
public static void OptimizedQuery(EmployeesContext context) { var employees = context.Employees .Where(e => e.Employees1 .Any(s => s.Address.Town.Name.StartsWith("B"))) .Distinct() .ToList(); foreach (Employee e in employees) { string result = $"{e.FirstName}"; } }
public static void SelectQueryWithLazyLoading(EmployeesContext context) { var employees = context.Employees.Select(e => new { Name = e.FirstName, DepartmentName = e.Department.Name, Address = e.Address.AddressText }); foreach (var e in employees) { string result = $"{e.Name} - {e.DepartmentName} - {e.Address}"; } }