sql >> Databasteknik >  >> RDS >> Mysql

Hur man får senaste posten för varje grupp med hjälp av Entity Framework och MySQL inklusive relaterad enhet

Du behöver inte SqlQuery konstruera för att göra beställningen före grupperingen:

var refGroupQuery = from m in dbContext.Messages
     group m by m.receiver_id into refGroup
     let firstItem = refGroup.OrderByDescending(x => x.created_at)
                             .FirstOrDefault()
     select new MessageDTO { 
                              id = firstItem.id, 
                              content = firstItem.content,
                              sender_email = firstItem.sender.email
                           };

Detta gör detsamma, men det översätter hela satsen till SQL, vilket har två fördelar

  • sender laddas inte lat för varje meddelande
  • sender.email kraschar inte när sender är null, eftersom det inte finns någon referens för null-objekt i SQL. Hela uttrycket (sender.email ) returnerar bara null.



  1. Kombinera två frågor till en

  2. ändra händelseschemaläggarens status i mysql

  3. Rätta mysql-syntaxfel när du skapar en användare

  4. Hur kan jag kombinera AND och OR i min SQL-sats