2010-01-17 12 views

उत्तर

8

हाँ @bzlm यह पहली बार शामिल किया गया है, लेकिन अगर आप

// dc = DataContext, assumes TableA contains items of type A 
var toInsert = from b in TableB 
       where ... 
       select new A 
       { 
        ... 
       }; 

TableA.InsertAllOnSubmit(toInsert); 
dc.SubmitChanges(); 

मैं एक तरह से देखने के एक समीक्षा/रखरखाव बिंदु से इस पसंद के रूप में मैं अपने में थोड़ा और अधिक स्पष्ट क्या चयन में हो रहा है लगता है: कुछ थोड़ा और वर्बोज़ पसंद करते हैं।


@JfBeaulac द्वारा अवलोकन के जवाब में:

कृपया ध्यान दें कि इस एसक्यूएल दिखाया उत्पन्न नहीं होगा - जहां तक ​​मुझे पता है यह LINQ का उपयोग कर सीधे उत्पन्न करने के लिए संभव नहीं है वास्तव में (कर रहा हूँ एसक्यूएल में), आपको linq को बाईपास करना होगा और सीधे डेटाबेस पर जाना होगा। कार्यात्मक रूप से इसे एक ही परिणाम प्राप्त करना चाहिए जिसमें यह चयन करेगा और फिर डेटा डालेगा - लेकिन यह सर्वर से डेटा को क्लाइंट में राउंड-ट्रिप करेगा और वापस डेटा की बड़ी मात्रा के लिए इष्टतम नहीं हो सकता है।

+1

क्या आप सिर्फ स्पष्टीकरण – Murph

+2

के साथ मनमाने ढंग से डाउनवॉट्स से प्यार नहीं करते हैं, यह प्रश्न में निर्दिष्ट SQL कथन में अनुवाद नहीं करेगा। यह टेबलबी में दी गई प्रविष्टियों का चयन करेगा, और टेबलए में सम्मिलित बयानों का एक गुच्छा उत्पन्न करेगा। ऐसा लगता है कि यह एक ही बात है लेकिन दिए गए एसक्यूएल का प्रत्यक्ष अनुवाद नहीं है। –

+0

@ जेएफबीउलाक मैं तब पोस्ट में संशोधन करूंगा। – Murph

1
context 
    .TableA 
    .InsertAllOnSubmit(
    context 
     .TableB 
     .Where(...) 
     .Select(b => new A { ... }) 
); 
संबंधित मुद्दे