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