Mysql
 sql >> डेटाबेस >  >> RDS >> Mysql

एफई कोर एक से कई संबंध फेंक अपवाद एक बच्चे की पंक्ति को जोड़ या अपडेट नहीं कर सकता

आपको ShopID नहीं बनाना चाहिए अशक्त यदि यह डिजाइन द्वारा आवश्यक है।

आप जिस समस्या का सामना कर रहे हैं, वह इसलिए है क्योंकि Add विधि नेविगेशन गुणों के माध्यम से पहुंच योग्य सभी इकाई उदाहरणों को भी पुनरावर्ती रूप से चिह्नित करती है और वर्तमान में संदर्भ द्वारा ट्रैक नहीं की जाती है Added (यानी नया)।

इसे कई तरह से हल किया जा सकता है:

  • इकाई प्रविष्टि को Added . पर सेट करना Add . के बजाय विधि:

    _context.Entry(Product).State = EntityState.Added;
    await _context.SaveChangesAsync();
    
  • नेविगेशन गुण को null . पर सेट करना पहले कॉलिंग Add :

    Product.Shop = null;
    _context.Products.Add(Product);
    await _context.SaveChangesAsync();
    
  • नेविगेशन प्रॉपर्टी ऑब्जेक्ट को पहले अटैच किया जा रहा है कॉलिंग Add :

    if (Product.Shop != null) _context.Attach(Product.Shop);
    _context.Products.Add(Product);
    await _context.SaveChangesAsync();
    
  • Update का उपयोग करना Add . के बजाय :

    _context.Products.Update(Product);
    await _context.SaveChangesAsync();
    

अंतिम तकनीक को डेटा सहेजना - डिस्कनेक्ट की गई संस्थाएँ - नई और मौजूदा संस्थाओं का मिश्रण :

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



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. बच्चों के चयन के लिए mySQL क्वेरी

  2. PHP स्ट्रिंग के अंदर MySQL कोड को फॉर्मेट करें

  3. एक फॉर्म में इनपुट की सरणी के माध्यम से कैसे लूप करें?

  4. इनो सेटअप स्क्रिप्ट पर MySQL इंस्टाल और लोड डेटाबेस

  5. मेरे वेब ऐप के लिए मेट्रिक्स कैसे स्टोर करें?