Oracle
 sql >> Teknologi Basis Data >  >> RDS >> Oracle

Oracle ODP.Net dan EF CodeFirst - Kesalahan SaveChanges

Ide dengan Attach() metodenya adalah Anda memiliki entitas yang diketahui berada di DB tetapi tidak dilacak oleh konteks ini, bukan? Pertanyaan saya kepada Anda adalah apakah Anda tahu pasti bahwa Peran ini di sini:

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

adalah sesuatu yang sudah ada? Jika tidak, saya rasa Anda tidak ingin menggunakan

ctx.Roles.Attach(r);

melainkan Anda akan menulis:

ctx.Roles.Add(r);

dan kemudian Anda bisa berbalik dan menulis

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

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

Masalah yang dimiliki contoh pertama Anda adalah bahwa Peran baru ini benar-benar baru di DB sehingga melampirkannya bukanlah yang ingin Anda lakukan, melainkan Anda ingin Menambahkannya.

Dan satu panggilan ke ctx.SaveChanges() seharusnya bekerja dengan baik di sini.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Klien Oracle dan komponen jaringan tidak ditemukan

  2. cara menggunakan dbms_scheduler untuk menjalankan pekerjaan setiap 30 menit

  3. Urutan Partisi Oracle

  4. kursor:pin S tunggu di X

  5. Oracle LIMIT setara dengan n,m