तालिका में पंक्तियों को कैसे जोड़ सकता है जब तालिका में प्राथमिक कुंजी नहीं है।linq 'टेबल (req)' पर ऑपरेशन बनाएं, अपडेट करें या हटाएं निष्पादित नहीं कर सकता क्योंकि इसकी कोई प्राथमिक कुंजी
उत्तर
देख अपने प्रश्न के शीर्षक के रूप में कहते हैं, LINQ एसक्यूएल के लिए, बनाने के अद्यतन या एक प्राथमिक कुंजी के बिना एक मेज पर संचालन हटाया नहीं जा सकता है। यह मुमकिन नहीं है।
तो, आपको शायद उन चीजों को करने के लिए DataContext.ExecuteCommand() का उपयोग करना होगा, या बेहतर अभी तक, अपने डेटाबेस को दोबारा सुधारें ताकि टेबल में प्राथमिक कुंजी हो।
मुझे नहीं पता कि यह स्पष्ट है लेकिन शायद आप प्राथमिक कुंजी सेट कर सकते हैं। http://www.functionx.com/vb/adonet/primarykey.htm
भी http://www.i-think22.net/archives/2009/07/24/linq-to-sql-and-tables-with-no-primary-key/
मैं यहां गलत हो सकता हूं, क्योंकि मेरे पास अभी सत्यापित करने का कोई तरीका नहीं है, लेकिन मेरा मानना है कि आप लिंक को एसक्यूएल को बता सकते हैं कि एक फ़ील्ड प्राथमिक कुंजी है, भले ही यह वास्तव में डेटाबेस में नहीं है। यह मानता है कि क्षेत्र में डेटा वास्तव में अद्वितीय है और इसे एक कुंजी के रूप में उपयोग किया जा सकता है भले ही इसे एक के रूप में परिभाषित न किया जाए।
यदि तालिका में कोई प्राथमिक कुंजी नहीं है, लेकिन इसमें अद्वितीय डेटा है जिसे कुंजी के रूप में उपयोग किया जा सकता है, तो डीबीएमएल में एल 2 एस बताएं कि यह प्राथमिक कुंजी है।
यदि तालिका में अद्वितीय डेटा नहीं है जिसे कुंजी के रूप में उपयोग किया जा सकता है, तो आपको उस स्पोक को लिखना होगा जो उस डेटा को हटा देता है जिसे आप हटाना चाहते हैं।
यदि आप इसे डीबी में सेट नहीं कर सकते हैं, तो प्राथमिक कुंजी linq2sql डिजाइनर में सेट करें।
यदि कॉलम का कोई सबसेट नहीं है जिसे प्राथमिक कुंजी के रूप में उपयोग किया जा सकता है, तो उन्हें प्राथमिक कुंजी के हिस्से के रूप में चिह्नित करें।
मुझे एक नमूने के साथ वर्णन करते हैं:
SampleDataContextDataContext db = new SampleDataContextDataContext();
Employee emp = new Employee() {
FirstName = "Experts",
Lastname = "Comment",
Address = "[email protected]"
};
db.Employees.InsertOnSubmit(emp);
db.SubmitChanges();
ऊपर कोड है जब एक नई पंक्ति सम्मिलित करने की कोशिश कर एक ही त्रुटि दे रहा था। इस मुद्दे के पीछे कारण यह है कि LINQ प्राथमिक कुंजी के बिना तालिका में डेटा डालने की सुविधा प्रदान नहीं करता है। इस बिंदु पर आपके पास दो विकल्प हैं जिनका उपयोग आप सम्मिलन संचालन करने के लिए कर सकते हैं।
1. स्टोर प्रक्रिया बनाएं और इसे LINQ से कॉल करें।
SampleDataContextDataContext db = new SampleDataContextDataContext();
db.InsertEmployeeData("Experts","Comment", "[email protected]");
यहाँ मैं नाम InsertEmployeeData
के साथ एक संग्रहीत प्रक्रिया बनाया है, और कोड से यह कहा जाता है। सरल और सीधे आगे।
2. LINQ का उपयोग करके एक सम्मिलित कथन बनाएं और निष्पादित करें।
SampleDataContextDataContext db = new SampleDataContextDataContext();
string insertStatement = "Insert into Employee values('Experts', 'Comment','[email protected]')";
db.ExecuteQuery<Employee>(insertStatement);
यहाँ मैं एक सामान्य डालने क्वेरी बनाया है और LINQ ExecuteQuery
पद्धति का उपयोग करके मार डाला।
मैं भी यही issue.But मैं इस समस्या का समाधान ...
1.Set (सर्वर Explorer में तालिका आप पर राइट क्लिक करके खुले तालिका परिभाषा यह जांच कर सकते हैं के लिए प्राथमिक कुंजी मिल गया तालिका)
2. ओपन डेटाकलास।App_Code फ़ोल्डर
3.Remove पहले से ही विद्यमान तालिका
4.Drag फिर PrimaryKey सेट करने के बाद एक ही टेबल के नीचे dbml।
5.Save सब बदल जाता है। (सिस्टम फ़ाइल .dbml में परिवर्तन सहेजने के लिए संकेत देगा -> हाँ पर क्लिक करें) आवेदन 6.run
फिर
यह काम करेंगे
कुछ टेबल (जैसे विक्रेताओं ने टेबल प्रदान किए हैं) एक प्राथमिक कुंजी नहीं है!
प्रत्येक उत्तर "प्राथमिक कुंजी जोड़ें" कहता है।
देखो, मैं नहीं पूछूंगा कि मैं सिर्फ एक जोड़ सकता हूं या नहीं। शर्तें मेरे द्वारा पूर्व निर्धारित नहीं हैं।
क्या बस लिखने का कोई तरीका है। कोई पढ़ना, हटाना या अद्यतन करना आवश्यक नहीं है।
- 1. , बनाएं अद्यतन या हटाएं टेबल पर कार्रवाई करने नहीं कर सकता क्योंकि यह कोई प्राथमिक कुंजी
- 2. एक समग्र प्राथमिक कुंजी
- 3. कोई प्राथमिक कुंजी
- 4. कोई प्राथमिक कुंजी
- 5. प्राथमिक कुंजी परिभाषा टेबल बयान
- 6. समग्र प्राथमिक कुंजी या नहीं?
- 7. कोई प्राथमिक कुंजी
- 8. कोई प्राथमिक कुंजी
- 9. टेबल नहीं है एक प्राथमिक कुंजी
- 10. कोई प्राथमिक कुंजी
- 11. प्राथमिक कुंजी
- 12. कोई प्राथमिक कुंजी
- 13. एसक्यूएल प्राथमिक कुंजी, आईएनटी या GUID या ..?
- 14. हटाएं ट्रिगर नहीं बना सकता क्योंकि तालिका में कैस्केडिंग DELETE
- 15. क्यूटी: '' निष्पादित नहीं कर सकता: अनुरोधित ऑपरेशन को
- 16. कई से कई टेबल में एक या दो प्राथमिक कुंजी?
- 17. MySQL - कोई बाल पंक्ति जोड़ या अपडेट नहीं कर सकता: एक विदेशी कुंजी बाधा
- 18. अद्यतन ट्रिगर की स्थापना और प्राथमिक कुंजी को अपडेट करना
- 19. पोस्टग्रेस कोई प्राथमिक कुंजी ड्रॉबैक
- 20. पोस्टग्रेज़: सभी टेबल हटाएं या हटाएं कैस्केड करें?
- 21. SQLAlchemy घोषणात्मक: बिना किसी प्राथमिक कुंजी के टेबल?
- 22. प्राथमिक कुंजी
- 23. प्राथमिक कुंजी छंटनी
- 24. ऑपरेशन पूरा नहीं किया जा सकता है क्योंकि DbContext को
- 25. LinqDataSource हटाएं, सम्मिलित करें या अपडेट ऑपरेशंस सक्षम होने पर संपत्ति का चयन नहीं करता है
- 26. ऑपरेशन पूरा नहीं किया जा सकता क्योंकि DbContext को
- 27. प्राथमिक कुंजी
- 28. रिकॉर्ड अपडेट नहीं कर सकता है,
- 29. MySQL लोड डेटा INFILE - कोई प्राथमिक कुंजी
- 30. प्राथमिक कुंजी
बहुत अच्छा विचार है लेकिन मैं पहले से ही टेबल में सेट हूं –