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

Oracle ODP.Net और EF CodeFirst - SaveChanges Error

Attach() . के साथ विचार विधि यह है कि आपके पास एक ऐसी इकाई है जिसे डीबी में जाना जाता है लेकिन इस संदर्भ से ट्रैक नहीं किया जा रहा है, है ना? मेरा आपसे प्रश्न है कि क्या आप निश्चित रूप से जानते हैं कि यह भूमिका यहाँ है:

Role r = new Role { ID = 1, Name = "Members" };

क्या कुछ ऐसा है जो पहले से मौजूद है? यदि ऐसा नहीं होता है, तो मुझे नहीं लगता कि आप जो करना चाहते हैं वह उपयोग करना है

ctx.Roles.Attach(r);

बल्कि यह है कि आप लिखेंगे:

ctx.Roles.Add(r);

और फिर आप घूम सकते हैं और लिख सकते हैं

User u = new User {
    Login = login,
    Password = password,
    Status = 1,
};

ctx.Users.Add(u);
u.Roles.Add(r);
ctx.SaveChanges();

आपके पहले उदाहरण में समस्या यह है कि यह नई भूमिका वास्तव में DB के लिए नई है इसलिए इसे संलग्न करना वह नहीं है जो आप करना चाहते हैं, बल्कि आप इसे जोड़ना चाहेंगे।

और ctx.SaveChanges() . के लिए सिंगल कॉल यहाँ ठीक काम करना चाहिए।




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. समूह एसक्यूएल (ओरेकल) द्वारा कुल चल रहा है

  2. एसक्यूएल जॉइनिंग प्रश्न

  3. एसक्यूएल (ओरेकल) में लहजे की अनदेखी स्ट्रिंग्स की तुलना करें

  4. क्या Oracle किसी त्रुटि पर लेन-देन वापस लेता है?

  5. IN खंड में SQL एकाधिक स्तंभ