sql >> Databáze >  >> RDS >> Mysql

Jak získat nejnovější záznam pro každou skupinu pomocí Entity Framework a MySQL včetně související entity

Nepotřebujete SqlQuery konstrukt pro provedení řazení před seskupením:

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

To dělá totéž, ale převádí celý příkaz do SQL, což má dvě výhody

  • sender není líně načten pro každou zprávu
  • sender.email nespadne, když sender je null, protože v SQL neexistuje žádný odkaz na objekt null. Celý výraz (sender.email ) vrátí pouze hodnotu null.



  1. Hlavní chyba v MySQL 8.x? -- cizí klíče

  2. Jak provést stránkování v simpledb

  3. záloha databáze mysql pomocí mysqldump

  4. Složený primární klíč vs další sloupec ID?