79 lines
2.3 KiB
C#

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);
}
}