Bagaimana saya bisa mendapatkan id objek baru yang dihasilkan oleh urutan DB?

Saya memiliki tabel dengan urutan dan pemicu sehingga membuat id baru saat memasukkannya ke DB.

Bagaimana saya bisa mendapatkan id objek baru, sebelum memanggil SaveChanges()?

Saya memerlukan id ini untuk menghubungkan antara objek baru dan objek lainnya.

Saya ingin melakukannya sebelum memanggil SaveChanges karena saya ingin memiliki opsi untuk melakukan rollback.


person Mattan    schedule 20.07.2010    source sumber


Jawaban (1)


Anda tidak bisa mendapatkannya tanpa menelepon SaveChanges(). Pikirkan tentang itu. ID berasal dari DB. SaveChanges() adalah hal pertama yang menyebabkan komunikasi dengan DB.

Jika Anda ingin membatalkan, Anda memiliki beberapa pilihan:

  • Dalam banyak kasus, Anda tidak perlu mengetahui ID sisi klien saat memasukkan. Menciptakan hubungan saja sudah cukup.
  • Gunakan ID yang dapat dihasilkan klien seperti GUID.
  • Gunakan TransactionScope untuk transaksi DB "nyata".
  • Lakukan undo (DeleteObject) alih-alih rollback.
person Craig Stuntz    schedule 20.07.2010