Mysql
 sql >> база данни >  >> RDS >> Mysql

Как да получите най-новия запис за всяка група с помощта на Entity Framework и MySQL, включително свързан обект

Не се нуждаете от SqlQuery конструкция за извършване на подреждането преди групирането:

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

Това прави същото, но превежда целия израз в SQL, което има две предимства

  • sender не се зарежда бавно за всяко съобщение
  • sender.email не се срива, когато sender е null, защото в SQL няма препратка към null обект. Целият израз (sender.email ) просто връща null.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Клауза WHERE, последвана от JOIN

  2. Избиране на непрекъснат блок от записи в mysql

  3. Търсене в масив от публикации в стойност на колона, разделена със запетая

  4. MySQL автоматично прехвърля/преобразува низ в число?

  5. Помощ за MySQL:Оптимизиране на заявка за актуализиране, която задава класиране според реда на друга колона