/ / LINQ Query को सामान्य जॉय से राईट OUTER JOIN - c #, linq, एंटिटी-फ्रेमवर्क, linq-to-sql, linq-to-इकाइयों में बदलना होगा

सामान्य जॉइन से LINQ क्वेरी को दाएं बाहरी जॉइन में बदलने की आवश्यकता है - सी #, linq, इकाई-ढांचे, linq-to-sql, linq-to-entities

मेरे पास निम्न प्रश्न है:

var poll = entities.Polls.Join(entities.Descriptors, p => p.DescriptorID, q => q.ID, (p, q) => new
{
Poll = p,
Descriptor = q
}).Join(entities.Media1, p => p.Descriptor.MediaID, q => q.ID, (p, q) => new
{
Poll = p.Poll,
Descriptor = p.Descriptor,
Media = q

}).Join(entities.PollCommentSettings,p => p.Poll.ID,q => q.PollID,(p,q) => new
{
Poll = p.Poll,
Descriptor = p.Descriptor,
Media = p.Media,
CommentSettings = q
}).FirstOrDefault(p => p.Poll.ID == request.PollID);

मुझे जो समस्या हो रही है, वह यह है कि जिन दो टेबलों पर काम किया जा रहा है, उनमें से एक वस्तु नहीं हो सकती है, लेकिन मुझे कोई फर्क नहीं पड़ता है, और मैं अभी भी अपनी शीर्ष स्तरीय वस्तु बनाना चाहता हूं।

दो PollCommentSettings और Media1 टेबलअगर मैच न हो तो कुछ भी नहीं लौटाने का कारण। अगर मुझे ये नहीं मिला तो उन्हें अंतिम रूप देने के लिए अंतिम वस्तु है। मेरा मानना ​​है कि यह इन दोनों तालिकाओं पर एक सही बाहरी जुड़ाव है।

उत्तर:

उत्तर № 1 के लिए 1

मुझे लगता है कि मुझे पता लगा कि लिनक्यूपैड में कुछ सामान की कोशिश करके मुझे क्या हासिल करना है। मुझे निम्नलिखित प्रश्न मिला है जो मुझे विश्वास है कि मैं जो खोज रहा हूं वह पूरा करता है।

from poll in Polls join descriptor in Descriptors on poll.DescriptorID equals descriptor.ID into pdj
from descriptor in pdj.DefaultIfEmpty()
join media in Media1 on descriptor.MediaID equals media.ID into dmj
from media in dmj.DefaultIfEmpty()
join commentSetting in PollCommentSettings on poll.ID equals commentSetting.PollID into  pcj
from commentSetting in pcj.DefaultIfEmpty()
where poll.ID == 28
select new
{
poll,
descriptor,
media,
commentSetting
}