Mengurus Ketepatan dan Skala Perpuluhan dengan Kod EF Didahulukan
Kod Rangka Kerja Entiti (EF) First lalai untuk memetakan System.Decimal
sifat kepada SQL Server decimal(18, 0)
lajur. Lalai ini mungkin tidak selalu sesuai, terutamanya apabila aplikasi anda memerlukan ketepatan yang lebih tinggi atau bilangan tempat perpuluhan yang lebih besar. Nasib baik, EF API menawarkan kaedah mudah untuk menyesuaikan pemetaan ini.
Mengkonfigurasi Ketepatan dan Skala
Sebelum EF 4.1, pembangun biasanya menggunakan kaedah HasColumnType
untuk melaraskan sifat lajur dalam gelung lelaran model. Contohnya:
<code class="language-csharp">foreach (var property in modelBuilder.Properties.Where(p => p.ClrType == typeof(decimal))) { property.HasColumnType($"decimal({property.Precision}, {property.Scale})"); }</code>
Walau bagaimanapun, EF 4.1 dan versi yang lebih baru menyediakan pendekatan yang lebih diperkemas menggunakan kaedah HasPrecision
. Kaedah ini, sebahagian daripada DecimalPropertyConfiguration
, secara langsung menetapkan ketepatan dan skala.
Berikut ialah cara menggunakan HasPrecision
:
<code class="language-csharp">modelBuilder.Entity<MyClass>().Property(o => o.MyDecimalProperty).HasPrecision(12, 10);</code>
Kod ini mencipta lajur SQL Server dengan ketepatan 12 dan skala 10 untuk sifat MyDecimalProperty
dalam entiti MyClass
.
Kaedah ini memastikan pengendalian data yang tepat dan boleh dipercayai dalam aplikasi EF Code First anda dengan membenarkan kawalan tepat ke atas storan perpuluhan dalam pangkalan data.
Atas ialah kandungan terperinci Bagaimana untuk Mengawal Ketepatan dan Skala Nilai Perpuluhan dalam Kod EF Pertama?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!