public Athlete[] FindByPosition(string position) { using (var db = new Context()) { return db.Set<Athlete>().Where(athlete => athlete.Position.Equals(position, StringComparison.OrdinalIgnoreCase)).ToArray(); } }
public Athlete FindAthlete(long athleteId) { using (var db = new Context()) { return db.Set<Athlete>().Find(athleteId); } }
public TeamAthletes FindTeamWithAthletes(long teamId) { using (var db = new Context()) { var team = db.Set<Team>().Find(teamId); var teamathletes = ( from athletes in db.Set<Athlete>() join at in db.Set<AthleteTeam>() on athletes.Id equals at.AthleteId where at.TeamId == teamId select athletes ).ToArray(); return new TeamAthletes { Team = team, Athletes = teamathletes, }; } }
public void Seed() { using (var db = new Context()) { if (db.Set<Athlete>().Count() == 0) { SeedTeams(); SeedAthletes(); } } }
private void SeedTeams() { var teams = new Team[] { new Team { Name = "Football" }, new Team { Name= "Baseball" }, new Team { Name = "Soccer" } }; using (var db = new Context()) { foreach (var team in teams) { Teams.Add(db.Set<Team>().Add(team)); db.SaveChanges(); } } }
private static void LoadTeamWithAthletes() { var sw = new Stopwatch(); var ef = new EFAccessor(); var dapper = new DapperAccessor(); long[] teamIds; using (var db = new Context()) { teamIds = db.Set<Team>().Select(team => team.Id).ToArray(); } sw.Start(); ef.FindTeamWithAthletes(teamIds[0]); sw.Stop(); Console.WriteLine("EF find Team with Athletes first: {0}", sw.ElapsedMilliseconds); sw.Restart(); ef.FindTeamWithAthletes(teamIds[1]); sw.Stop(); Console.WriteLine("EF find Team with Athletes second: {0}", sw.ElapsedMilliseconds); sw.Restart(); dapper.FindTeamWithAthletes(teamIds[2]); sw.Stop(); Console.WriteLine("Dapper find Team with Athletes first: {0}", sw.ElapsedMilliseconds); sw.Restart(); dapper.FindTeamWithAthletes(teamIds[0]); sw.Stop(); Console.WriteLine("Dapper find Team with Athletes second: {0}", sw.ElapsedMilliseconds); }