Sie benötigen die SqlQuery nicht Konstrukt, um die Reihenfolge vor der Gruppierung durchzuführen:
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
};
Das macht dasselbe, aber es übersetzt die ganze Anweisung in SQL, was zwei Vorteile hat
senderwird nicht für jede Nachricht verzögert geladensender.emailstürzt nicht ab, wennsenderist null, da es in SQL keine Nullobjektreferenz gibt. Der gesamte Ausdruck (sender.email) gibt einfach null zurück.