Timpa Kekunci Dijana Automatik Rangka Kerja Entiti dengan Input Manual
Mengurus kunci utama secara manual dalam Rangka Kerja Entiti boleh menimbulkan kesukaran apabila cuba menyekat penjanaan ID automatik rangka kerja. Panduan ini menangani masalah biasa ini.
Cabaran timbul apabila cuba menghalang penjanaan EventID automatik menggunakan HasDatabaseGeneratedOption(DatabaseGeneratedOption.None)
. Ini selalunya bercanggah dengan tetapan IDENTITY_INSERT
dalam SQL Server.
Menyelesaikan Konflik:
Untuk menyelesaikan konflik ini, dayakan IDENTITY_INSERT
untuk jadual yang berkaitan. Ini membenarkan sisipan manual nilai identiti. Laksanakan ini dalam pembina DbContext anda:
<code class="language-csharp">using (var connection = Db.Database.Connection) { var command = connection.CreateCommand(); command.CommandText = "SET IDENTITY_INSERT Events ON"; command.ExecuteNonQuery(); }</code>
Konfigurasi Kunci Berasaskan Atribut:
Sebagai alternatif, gunakan atribut untuk konfigurasi. Gunakan atribut berikut pada harta EventID
anda:
<code class="language-csharp">[Key] [DatabaseGenerated(DatabaseGeneratedOption.None)] public int EventID { get; set; }</code>
Pendekatan ini berfungsi secara sama dalam Rangka Kerja Entiti 6 dan Teras Rangka Kerja Entiti.
Dengan menggabungkan pengubahsuaian ini, anda boleh melumpuhkan penjanaan kunci utama automatik secara berkesan dan mengurus nilai entiti Acara secara manual.
Atas ialah kandungan terperinci Bagaimana untuk Melumpuhkan Kunci Dijana Auto dalam Rangka Kerja Entiti dengan Input Kunci Manual?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!