मैं निम्नलिखित प्रपत्र की एक LINQ संस्थाओं के लिए प्रश्न हैं:नेस्टेड क्वेरी समर्थित नहीं है। Operation1 = 'UnionAll' Operation2 = 'MultiStreamNest'
var x = from a in SomeData
where ... some conditions ...
select new MyType
{
Property = a.Property,
ChildCollection = from b in a.Children
select new MyChildType
{
SomeProperty = b.Property,
AnotherProperty = b.AnotherProperty
}
};
var y = from a in SomeData
where ... some other conditions ...
select new MyType
{
Property = a.Property,
ChildCollection = from b in a.Children
select new MyChildType
{
SomeProperty = b.Property,
AnotherProperty = b.AnotherProperty
}
};
var results = x.Concat(y);
(इस सरल उदाहरण है - 'जहां' और 'चुनें' खंड अधिक जटिल हैं । से यहाँ दिखाया गया है मैं एक संयुक्त एक अभी भी जटिल है, बहुत से सशर्त है बनाने के रूप में अलग-अलग क्वेरी बयानों का उपयोग कर रहा हूँ और संकलित करने के लिए)
ठीक संकलित एक उम्र लेता है, लेकिन अपवाद के साथ निष्पादन में विफल रहता है:
"The nested query is not supported. Operation1='UnionAll' Operation2='MultiStreamNest'
नोट, मैं एक नेस्टेड टाइप की गई संरचना में प्रोजेक्ट करने की कोशिश कर रहा हूं। अगर मैं Concat() से पहले x और y पर .ToList() को कॉल करता हूं तो यह ठीक काम करता है। एक और बिंदु के रूप में, मेरी संपत्तियों में से एक एक enum है, लेकिन मैं एक पूर्णांक रैपर संपत्ति का उपयोग कर इसे आवंटित कर रहा हूँ।
क्या कोई तरीका है जो मैं कर सकता हूं जो मैं सभी डेटा को स्मृति में खींचने के बिना करना चाहता हूं? या यह enum कारण विफलता है?
धन्यवाद,
टी
बस इनमें से दूसरे की कोशिश की और लगता है कि पहले जैसा ही काम करता है, यानी मैं आशा करता हूं कि काम नहीं करता है (मेरी ओर से @ Arion की पोस्ट पर मेरी टिप्पणी देखें। –
... जिसे अब हटा दिया गया है। वैसे भी, डॉन ' यूनियन का उपयोग करके दिमाग का उपयोग करते हुए परिणाम सेट अलग-अलग होना चाहिए, लेकिन फिर मुझे अपवाद मिलता है "निर्दिष्ट 'ऑपरेशन संग्रह पर लागू नहीं किया जा सकता है निर्दिष्ट तर्क के परिणाम प्रकार।" जो मुझे विश्वास है क्योंकि विशिष्ट नेस्टेड को संभाल नहीं सकता संग्रह –
यदि खाली है? यह कैसा व्यवहार है? – innovia