Rangka Kerja Entiti: Pengurusan Kunci Utama Manual
Rangka Kerja Entiti (EF) biasanya menjana nilai kunci primer secara automatik. Walau bagaimanapun, situasi timbul di mana menentukan kunci utama secara manual diperlukan. Panduan ini memperincikan cara untuk mencapainya.
Melumpuhkan Penjanaan Kunci Automatik
Untuk mendayakan kemasukan kunci utama manual, ubah suai kaedah OnModelCreating
seperti berikut:
<code class="language-csharp">modelBuilder.Entity<Event>().Property(e => e.EventID).HasDatabaseGeneratedOption(DatabaseGeneratedOption.None);</code>
Mengatasi Konflik Lajur Identiti
Ralat "Lajur identiti tidak boleh memasukkan nilai eksplisit" timbul apabila sifat IDENTITY_INSERT
jadual ditetapkan kepada OFF
. Untuk membetulkannya, tetapkan sementara IDENTITY_INSERT
kepada ON
sebelum memasukkan data.
Konfigurasi Berasaskan Atribut
Sebagai alternatif, gunakan atribut untuk menentukan sifat utama secara langsung dalam kelas anda:
<code class="language-csharp">[Key] [DatabaseGenerated(DatabaseGeneratedOption.None)] public int EventID { get; set; }</code>
Kaedah ini mengelakkan pengubahsuaian OnModelCreating
dan serasi dengan Teras EF.
Contoh Kelas POCO yang dikemas kini
Kelas POCO berikut menunjukkan pendekatan berasaskan atribut:
<code class="language-csharp">public class Event { [Key] [DatabaseGenerated(DatabaseGeneratedOption.None)] public int EventID { get; set; } public string EventType { get; set; } public DateTime StartDate { get; set; } public DateTime EndDate { get; set; } public virtual ICollection<Match> Matches { get; set; } public virtual ICollection<EventParticipation> EventParticipation { get; set; } }</code>
Pendekatan ini menawarkan penyelesaian yang lebih bersih dan boleh diselenggara untuk mengurus kunci utama yang ditetapkan secara manual dalam model EF anda.
Atas ialah kandungan terperinci Bagaimana untuk Menetapkan Nilai Utama Utama secara Manual dalam Rangka Kerja Entiti?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!