sql >> Database >  >> RDS >> Mysql

Hoe u de nieuwste record voor elke groep kunt krijgen met behulp van Entity Framework en MySQL inclusief gerelateerde entiteit

U hebt de SqlQuery niet nodig constructie om de bestelling vóór de groepering te doen:

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
                           };

Dit doet hetzelfde, maar het vertaalt de hele instructie naar SQL, wat twee voordelen heeft

  • sender is niet lui geladen voor elk bericht
  • sender.email crasht niet wanneer sender is null, omdat er in SQL geen verwijzing naar een null-object is. De hele uitdrukking (sender.email ) retourneert gewoon null.



  1. Hoe ORIGINAL_DB_NAME() werkt in SQL Server

  2. Haal de datum/tijd uit een Unix-tijdstempel in SQLite

  3. DDL-scripts genereren (maken) vanuit SQL Server Management Studio (SSMS) - SQL Server / TSQL-zelfstudie, deel 17

  4. Database-indexering in een notendop met B+tree en Hash in vergelijking