वहाँ एक डालने करने के लिए एक रास्ता है/Linq कि इस एसक्यूएल करने के लिए अनुवाद के साथ चयन करें:सम्मिलित करें/साथ LINQ करने के लिए-एसक्यूएल
INSERT INTO TableA (...)
SELECT ...
FROM TableB
WHERE ...
वहाँ एक डालने करने के लिए एक रास्ता है/Linq कि इस एसक्यूएल करने के लिए अनुवाद के साथ चयन करें:सम्मिलित करें/साथ LINQ करने के लिए-एसक्यूएल
INSERT INTO TableA (...)
SELECT ...
FROM TableB
WHERE ...
हाँ @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 को बाईपास करना होगा और सीधे डेटाबेस पर जाना होगा। कार्यात्मक रूप से इसे एक ही परिणाम प्राप्त करना चाहिए जिसमें यह चयन करेगा और फिर डेटा डालेगा - लेकिन यह सर्वर से डेटा को क्लाइंट में राउंड-ट्रिप करेगा और वापस डेटा की बड़ी मात्रा के लिए इष्टतम नहीं हो सकता है।
context
.TableA
.InsertAllOnSubmit(
context
.TableB
.Where(...)
.Select(b => new A { ... })
);
क्या आप सिर्फ स्पष्टीकरण – Murph
के साथ मनमाने ढंग से डाउनवॉट्स से प्यार नहीं करते हैं, यह प्रश्न में निर्दिष्ट SQL कथन में अनुवाद नहीं करेगा। यह टेबलबी में दी गई प्रविष्टियों का चयन करेगा, और टेबलए में सम्मिलित बयानों का एक गुच्छा उत्पन्न करेगा। ऐसा लगता है कि यह एक ही बात है लेकिन दिए गए एसक्यूएल का प्रत्यक्ष अनुवाद नहीं है। –
@ जेएफबीउलाक मैं तब पोस्ट में संशोधन करूंगा। – Murph