आपको 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.emailsender. होने पर क्रैश नहीं होता है शून्य है, क्योंकि SQL में कोई अशक्त वस्तु संदर्भ नहीं है। संपूर्ण अभिव्यक्ति (sender.email) बस शून्य लौटाता है।