private static void ObjectQuery() { const string country = "Brazil"; using (var data = new Formula1v2Entities()) { IQueryable <Racer> racers = data.Racers.Where(racer => racer.Nationality == country); foreach (Racer racer in racers) { Console.WriteLine(racer.FirstName); } } }
private static void LinqToEntities() { using (var data = new Formula1v2Entities()) { IOrderedQueryable <Racer> racers = from racer in data.Racers where racer.Wins > 40 orderby racer.Wins descending select racer; foreach (Racer racer in racers) { Console.WriteLine("{0} {1}", racer.FirstName, racer.LastName); } } }
private static void ObjectQueryFiltering() { const string country = "USA"; using (var formula1 = new Formula1v2Entities()) { IQueryable <Racer> racers = formula1.Racers.Where(racer => racer.Nationality == country) .OrderByDescending(racer => racer.Wins) .ThenByDescending(racer => racer.Starts) .Take(3); foreach (Racer racer in racers) { Console.WriteLine("{0} {1}, wins: {2}, starts: {3}", racer.FirstName, racer.LastName, racer.Wins, racer.Starts); } } }
private static void LinqToEntities2() { using (var entities = new Formula1v2Entities()) { var query = from racer in entities.Racers from raceResult in racer.RaceResults where raceResult.Position <= 3 && raceResult.Position >= 1 && racer.Nationality == "Switzerland" group racer by racer.Id into g let podium = g.Count() orderby podium descending select new { Racer = g.FirstOrDefault(), Podiums = podium }; foreach (var q in query) { Console.WriteLine("{0} {1} {2}", q.Racer.FirstName, q.Racer.LastName, q.Podiums); } } }