Du behøver ikke SqlQuery
konstruer for at udføre rækkefølgen før grupperingen:
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
};
Dette gør det samme, men det oversætter hele sætningen til SQL, hvilket har to fordele
sender
er ikke doven indlæst for hver beskedsender.email
går ikke ned, nårsender
er null, fordi der i SQL ikke er nogen nul objektreference. Hele udtrykket (sender.email
) returnerer bare null.