Rumah >pangkalan data >tutorial mysql >Bagaimana untuk Melumpuhkan Kunci Dijana Auto dalam Rangka Kerja Entiti dengan Input Kunci Manual?

Bagaimana untuk Melumpuhkan Kunci Dijana Auto dalam Rangka Kerja Entiti dengan Input Kunci Manual?

Barbara Streisand
Barbara Streisandasal
2025-01-15 18:57:44174semak imbas

How to Disable Auto-Generated Keys in Entity Framework with Manual Key Input?

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!

Kenyataan:
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