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

Kerangka Entitas Tidak Dapat Memperbarui Data Dalam Tabel Dengan Kunci Komposit (Oracle)

Harap sertakan:

  • Definisi entitas
  • Kelas/konfigurasi pemetaan dari konteks
  • Definisi tabel SQL

BackPropagateServerGen

Melihat jejak tumpukan, hal utama yang saya lihat adalah BackPropagateServerGen .

Entity Framework menjalankan pembaruan Anda terhadap database, tetapi salah satu nilai kunci komposit Anda (mungkin COPY_ID) sebenarnya sedang diubah oleh panggilan UPDATE. Nilai yang dihasilkan server ini kembali dari panggilan SQL, dan Entity Framework kemudian mengeluh bahwa nilai kunci sedang diubah dari bawahnya.

Jadi, saya kira nilai kunci komposit COPY_ID Anda didefinisikan sebagai pengidentifikasi yang dibuat server, tetapi salah satu atau keduanya terjadi:

  • Anda memetakan ke tampilan atau prosedur tersimpan yang mengganggu apa yang diharapkan Entity Framework dari UPDATE vanilla
  • Anda memiliki satu atau beberapa pemicu di tabel, tampilan, atau prosedur tersimpan yang mengganggu hasil.

Jika Anda memiliki pemicu, nonaktifkan sementara untuk melihat apakah masalah kemudian berhenti.

Jika Anda memetakan ke tampilan atau prosedur tersimpan, coba pemetaan langsung ke tabel jika memungkinkan.

Gunakan alat profil apa pun yang Anda miliki untuk menangkap SQL yang sedang dieksekusi oleh kode.

Ringkasan

Saya pikir panggilan UPDATE sebenarnya mencapai database, tetapi hasil pengembaliannya mengubah nilai kunci, menyebabkan Entity Framework gagal, dan kemungkinan memutar kembali transaksi UPDATE (tergantung pada versi EF apa yang Anda gunakan).




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cara mengubah pengaturan untuk Pengembang SQL untuk mengenali versi SDK saat ini dengan benar

  2. Fungsi Tersimpan di Oracle tidak Memasukkan Nilai ke dalam tabel yang diinginkan

  3. Bagaimana saya bisa melakukan agregat ini?

  4. SQL untuk mengembalikan jumlah hari kerja antara 2 tanggal berlalu

  5. cara mengekstrak format tanggal dari oracle string