using EntityFrameworkCore.Data; using Microsoft.EntityFrameworkCore; using var context = new DeadBallZoneLeagueDbContext(); //PrintTeams(); var teamOne = await context.Teams.FirstAsync(t => t.TeamId == 1); var teamTwo = await context.Teams.FirstAsync(t => t.TeamId == 2); var teamThree = await context.Teams.SingleAsync(t => t.TeamId == 3); var teamFour = await context.Teams.SingleOrDefaultAsync(t => t.TeamId == 3); // There is no entry for coaches yet, this function will provide a null to coach. // Rather than raise: "System.InvalidOperationException: Sequence contains no elements." var coach = await context.Coaches.FirstOrDefaultAsync(); async Task CountFunctionsTeams(int id) { var numberOfTeams = await context.Teams.CountAsync(t => t.TeamId > id); Console.WriteLine($"Number of teams with ID > {id}: {numberOfTeams}"); var maxTeams = await context.Teams.MaxAsync(t => t.TeamId); Console.WriteLine($"Max teams: {maxTeams}"); var minTeams = await context.Teams.MinAsync(t => t.TeamId); Console.WriteLine($"Min teams: {minTeams}"); var averageTeams = await context.Teams.AverageAsync(t => t.TeamId); Console.WriteLine($"Average teams: {averageTeams}"); var sumTeams = await context.Teams.SumAsync(t => t.TeamId); Console.WriteLine($"Sum team IDs: {sumTeams}"); } async Task GetAllTeamsQuerySyntax(string searchTerm) { var teams = await ( from team in context.Teams where EF.Functions.Like(team.Name, $"%{searchTerm}%") select team) .ToListAsync(); foreach (var team in teams) { Console.WriteLine(team.Name); } } async Task PrintTeams() { var teams = await context.Teams.ToListAsync(); foreach (var team in teams) { Console.WriteLine(team.Name); } } async Task PrintFilteredTeams() { Console.WriteLine("Enter search term: "); var searchTerm = Console.ReadLine(); // var filteredTeams = await context.Teams.Where(t => t.Name.Contains(searchTerm)).ToListAsync(); var filteredTeams = await context.Teams.Where(t => EF.Functions.Like(t.Name, $"%{searchTerm}%")).ToListAsync(); foreach (var team in filteredTeams) { Console.WriteLine(team.Name); } } async Task PrintTeamById(int id) { // Selection based on finding the Primary Key. var teamBasedOnId = await context.Teams.FindAsync(id); if (teamBasedOnId != null) { Console.WriteLine(teamBasedOnId.Name); } }