2010-08-06 17 views
8

तरहसकल या में शामिल होने के तार

ID | Name | City 
1 | X | Y 
2 | Z | Y 
3 | W | K 

मैं की तरह

ID | Description 
1 | Y (X, Z) 
3 | K (W) 

मैं

From C In Clients Group C By C.ID, C.City _ 
Into G = Group Select New With {.ID = ID, .Description = City & _ 
" (" & (From C In Clients Select C.Name).Aggregate(Function(X, Y) X & ", " & Y) & ")"} 
की तरह कुछ करने की कोशिश की एक परिणाम का उत्पादन करना चाहते हैं एक मेज को देखते हुए

जिसने मुझे एक त्रुटि दी "क्वेरी ऑपरेटर 'कुल' समर्थित नहीं है।" भी कोशिश की

From C In Clients Group C By C.ID, C.City _ 
Into G = Group Select New With {.ID = ID, .Description = City & _ 
" (" & String.Join((From C In Clients Select C.Name).ToArray, ", ") & ")"} 

कौन सा मुझे त्रुटि "कोई एसक्यूएल के लिए समर्थित अनुवाद"

तो, मैं यह कैसे कर सकते हैं दे दी है?

उत्तर

21

मैंने इसे सी # में हैक किया और ऐसा लगता है कि आप क्या चाहते हैं। मैं आपको वीबी तक अनुवाद छोड़ दूंगा।

var clients = from c in context.Clients 
       group c by c.City into cities 
       select new { 
        ID = cities.First().ID, 
        City = cities.Key, 
        Names = string.Join(",", (from n in cities select n.Name).ToArray()) 
       }; 

foreach (var c in clients) { 
    Console.WriteLine(string.Format("{0}| {1} ({2})", c.ID, c.City, c.Names)); 
} 
+0

कमाल! मुझे आश्चर्य है कि क्यों सम्मिलन + काम नहीं करते हैं, और अकेले काम में शामिल हों .. आंकड़े – ariel

+0

धन्यवाद आदमी। यह एक आकर्षण की तरह काम करता है ... मेरे लिए परेशानी एम्बेडेड क्वेरी थी। – Merritt

+0

हालांकि आप इसे क्लाइंट पर करते हैं जो अवांछित है ज्यादातर मामलों में। –

0

त्रुटि का अर्थ है कि आपका LINQ ऑपरेशन TSQL में SQL सर्वर पर नहीं किया जा सकता है, जैसा आपने लिखा है।

आप जो चाहते हैं उसे प्राप्त करने के लिए, आपको जितना संभव हो उतना आधार डेटा चुनना/मूल्यांकन करना होगा, और उसके बाद एक दूसरे चरण में एकत्रीकरण करना होगा। एक दो या अधिक कदम प्रक्रिया आदर्श नहीं है, लेकिन यह किया जा सकता है।

संबंधित मुद्दे