में जॉइन के बाद सभी कॉलम का चयन करें मेरे पास दो टेबल, Table1
और Table2
हैं। मैं प्रदर्शन करने के लिए चाहते हैं, कहते हैं, एक बाएं बाहरी में शामिल होने:LINQ
var myOutput = from object1 in Table1
join object2 in Table2
on object1.Property1 equals object2.Property2 into Table3
from output in Table3.DefaultIfEmpty()
select new
{
object1.Property1,
object1.Property2,
//...
output.Property3,
output.Property4,
//...
};
तुम नोटिस सकते हैं, मैं जिसके परिणामस्वरूप मेज से दोनों वस्तुओं के सभी गुण (enumerables जबकि शामिल होने की सोची कुछ प्रकार की वस्तुओं को शामिल चयन करना चाहते हैं - ये दोनों संबंधों के लिए अलग हैं)। बेशक, मैं अज्ञात चयन में गुणों का चयन कर सकता हूं, जैसा कि उदाहरण में दिखाया गया है।
मेरा प्रश्न है कि सभी गुण मैन्युअल रूप से निर्दिष्ट करने से कैसे बचें? मुझे SELECT * FROM TABLE3
जैसे कुछ होना चाहिए, जहां TABLE3
एक परिणामस्वरूप संबंध है (TABLE1
और TABLE2
में शामिल होने के बाद)।
सुराग के लिए अग्रिम धन्यवाद।
असाइनमेंट के दौरान ToString() विधि का पहला विकल्प उपयोग नहीं करता है? उस मामले में मुझे myOutput.ToArray() ... – Jamie
करने के बाद ऑब्जेक्ट 1 नामक कॉलम में "नेमस्पेस। माइटाइप" मान मिलेगा, नहीं, यह 'ToString()' का आह्वान नहीं करेगा, जो आपको यह विचार देता है कि यह होगा ? क्या आप इसे किसी प्रकार के यूआई नियंत्रण में बाध्य कर रहे हैं? * नियंत्रण * 'ToString()' का आह्वान कर सकता है, लेकिन क्वेरी स्वयं ही प्रामाणिक है, टीटी बस पूरी वस्तु का उपयोग करती है और इसे किसी संपत्ति पर मैप करती है। –
आपकी टिप्पणी ने मुझे एक विचार दिया - मैंने एक नई कक्षा बनाई है जिसमें दोनों वस्तुओं के संदर्भ शामिल हैं। फिर इनके कुछ गुणों से जुड़ना आसान है :) – Jamie