Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Jak uzyskać najnowszy rekord dla każdej grupy za pomocą Entity Framework i MySQL, w tym powiązanej encji?

Nie potrzebujesz SqlQuery konstrukt do wykonania porządkowania przed grupowaniem:

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

Robi to samo, ale tłumaczy całą instrukcję na SQL, co ma dwie zalety

  • sender nie ładuje się leniwie dla każdej wiadomości
  • sender.email nie ulega awarii, gdy sender ma wartość null, ponieważ w SQL nie ma odniesienia do obiektu o wartości null. Całe wyrażenie (sender.email ) po prostu zwraca wartość 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. Nie mogę zwrócić obiektu w .then() Promise

  2. Aktualizacja MySQL PRZYPADEK KIEDY / WTEDY / INACZEJ

  3. MySQL:kolumna 'column_name' w której klauzula jest niejednoznaczna

  4. Laravel - Model zapytań, jeśli wartości zawierają określony ciąg (pobrany z danych wejściowych wyszukiwania)

  5. Różnica między BINARY(16) a CHAR(32) podczas przechowywania MD5 w bazie danych