sql >> Database >  >> RDS >> Mysql

Taken en groeperen in EntityFramework

Hier is een voorbeeld van wat ik denk dat je zoekt. Deze zoekopdracht levert de top 3 sudtents op volgens GPA in elke klas:

using System;
using System.Collections.Generic;
using System.Data.Entity;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Ef6Test
{

    class Student
    {
        public int Id { get; set; }
        public string Name { get; set; }

        public string Class{ get; set; }

        public decimal GPA { get; set; }
    }

    class Db : DbContext
    {
        public DbSet<Student> Students { get; set; }
    }
    class Program
    {
        static void Main(string[] args)
        {
            using (var db = new Db())
            {
                var q = db.Students
                         .GroupBy(s => s.Class)
                         .SelectMany(g => g.OrderByDescending(s => s.GPA).Take(3));

                Console.WriteLine(q.ToString());

                Console.ReadKey();
            }

        }
    }
}


  1. SQL 'AT TIME ZONE', query breed en met een 'SELECT' alle kolommen (tabelnaam.*) expressie

  2. DATA DIRECTORY MySQL

  3. optimaliseer mysql count-query

  4. JSON_CONTAINS() Voorbeelden in MySQL