コード例 #1
0
ファイル: EFAccessor.cs プロジェクト: boriphuth/ORMComparison
 public Athlete[] FindByPosition(string position)
 {
     using (var db = new Context())
     {
         return db.Set<Athlete>().Where(athlete => athlete.Position.Equals(position, StringComparison.OrdinalIgnoreCase)).ToArray();
     }
 }
コード例 #2
0
ファイル: EFAccessor.cs プロジェクト: boriphuth/ORMComparison
 public Athlete FindAthlete(long athleteId)
 {
     using (var db = new Context())
     {
         return db.Set<Athlete>().Find(athleteId);
     }
 }
コード例 #3
0
ファイル: EFAccessor.cs プロジェクト: boriphuth/ORMComparison
 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,
         };
     }
 }
コード例 #4
0
ファイル: Context.cs プロジェクト: boriphuth/ORMComparison
 public void Seed()
 {
     using (var db = new Context())
     {
         if (db.Set<Athlete>().Count() == 0)
         {
             SeedTeams();
             SeedAthletes();
         }
     }
 }
コード例 #5
0
ファイル: Context.cs プロジェクト: boriphuth/ORMComparison
        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();
                }
            }
        }
コード例 #6
0
ファイル: Program.cs プロジェクト: boriphuth/ORMComparison
        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);
        }