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 berichtsender.email
crasht niet wanneersender
is null, omdat er in SQL geen verwijzing naar een null-object is. De hele uitdrukking (sender.email
) retourneert gewoon null.