Rumah > pembangunan bahagian belakang > C++ > Bagaimana untuk Menetapkan Kunci Utama secara Manual dalam Rangka Kerja Entiti Sambil Mengelakkan Ralat `IDENTITY_INSERT`?

Bagaimana untuk Menetapkan Kunci Utama secara Manual dalam Rangka Kerja Entiti Sambil Mengelakkan Ralat `IDENTITY_INSERT`?

Linda Hamilton
Lepaskan: 2025-01-14 09:44:43
asal
156 orang telah melayarinya

How to Manually Set Primary Keys in Entity Framework While Avoiding `IDENTITY_INSERT` Errors?

Memintas Auto-Kenaikan dalam Rangka Kerja Entiti: Panduan Praktikal

Penjanaan kunci utama automatik Rangka Kerja Entiti boleh menimbulkan masalah apabila anda perlu menetapkan nilai kunci secara manual. Ini selalunya membawa kepada konflik, seperti yang ditunjukkan oleh ralat yang dihadapi semasa cuba mengatasi gelagat autokenaikan.

Pada mulanya, kod berikut digunakan untuk menghalang Rangka Kerja Entiti daripada mengurus kunci utama secara automatik:

<code class="language-csharp">modelBuilder.Entity<event>().Property(e => e.EventID).HasDatabaseGeneratedOption(DatabaseGeneratedOption.None);</code>
Salin selepas log masuk

Ini, bagaimanapun, menghasilkan SqlException: "Tidak boleh memasukkan nilai eksplisit untuk lajur identiti dalam jadual 'Acara' apabila IDENTITY_INSERT ditetapkan kepada MATI." Ini kerana IDENTITY_INSERT pangkalan data dilumpuhkan, menghalang pemasukan nilai secara langsung ke dalam lajur identiti.

Penyelesaian yang lebih mantap menggunakan atribut DataAnnotations untuk pendekatan yang lebih bersih dan lebih serasi, terutamanya dengan Teras Rangka Kerja Entiti:

<code class="language-csharp">[Key]
[DatabaseGenerated(DatabaseGeneratedOption.None)]
public int Id { get; set; }</code>
Salin selepas log masuk

Coretan kod ini mengisytiharkan sifat Id sebagai kunci utama ([Key]) dan melumpuhkan penjanaan nilai automatik ([DatabaseGenerated(DatabaseGeneratedOption.None)]) secara eksplisit. Ini membenarkan penetapan kunci utama manual sambil mengekalkan keserasian dengan Rangka Kerja Entiti. Kaedah ini berkesan mengelakkan isu IDENTITY_INSERT dan menyediakan penyelesaian yang lebih elegan untuk mengurus kunci utama.

Atas ialah kandungan terperinci Bagaimana untuk Menetapkan Kunci Utama secara Manual dalam Rangka Kerja Entiti Sambil Mengelakkan Ralat `IDENTITY_INSERT`?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan