Memahami Ketepatan dan Skala Perpuluhan dalam Kod Teras EF-Migrasi Pertama
Pendekatan Kod-Pertama Teras Rangka Kerja Entiti memerlukan pertimbangan yang teliti apabila memetakan sifat perpuluhan kepada lajur pangkalan data. Walaupun pemetaan lalai adalah decimal(18, 0)
dalam SQL Server, anda selalunya perlu menyesuaikan ketepatan dan skala untuk keperluan data tertentu.
Menentukan Ketepatan dan Skala
Untuk mengawal ketepatan dan skala lajur perpuluhan anda, manfaatkan kaedah HasPrecision
dalam kelas DecimalPropertyConfiguration
. Kaedah ini menerima dua hujah: precision
(jumlah bilangan digit) dan scale
(bilangan tempat perpuluhan).
Contoh Ilustrasi:
<code class="language-csharp">public class EFDbContext : DbContext { protected override void OnModelCreating(ModelBuilder modelBuilder) { modelBuilder.Entity<MyClass>().Property(e => e.MyDecimalProperty).HasPrecision(12, 10); base.OnModelCreating(modelBuilder); } }</code>
Dalam coretan kod ini, MyDecimalProperty
dikonfigurasikan dengan ketepatan 12 dan skala 10, membolehkan jumlah 12 digit dengan 10 tempat selepas titik perpuluhan.
Pertimbangan Penting:
Kaedah HasPrecision
tidak disokong dalam versi EF yang lebih lama (cth., EF 4.1). Untuk versi ini, gunakan kaedah HasColumnType
seperti yang ditunjukkan di bawah:
<code class="language-csharp"> modelBuilder.Entity<MyClass>().Property(e => e.MyDecimalProperty).HasColumnType("decimal(12, 10)");</code>
Ingat bahawa precision
mewakili bilangan keseluruhan digit, manakala scale
secara khusus merujuk kepada digit yang mengikuti titik perpuluhan.
Atas ialah kandungan terperinci Bagaimanakah Saya Mengawal Ketepatan dan Skala Perpuluhan dalam Kod Teras EF-Migrasi Pertama?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!