在 EF Code First 中配置十進位資料類型的精確度和小數位數
在 EF Code First 中,System.Decimal 類型的屬性預設會對應到資料庫中 decimal(18, 0) 類型的欄位。為了維護資料完整性並確保數值運算的準確性,自訂這些列的精確度(儲存的總位數)和小數位數(儲存的小數位數)至關重要。
Dave Van den Eynde 最初給出的答案建議,在EF 4.0 及更早版本中,調整精度的推薦方法是遍歷屬性,並使用modelBuilder.Entity().Property().HasPrecision() 和modelBuilder. Entity().Property().HasScale()。然而,這種方法在最近的 EF 版本中已過時。
從 EF 4.1 開始,DecimalPropertyConfiguration.HasPrecision 方法提供了一種更簡單、更有效率的解決方案。它接受兩個參數:
在 EF Code First 中設定精確度和小數位數的語法如下:
<code class="language-csharp">public class EFDbContext : DbContext { protected override void OnModelCreating(System.Data.Entity.DbModelBuilder modelBuilder) { modelBuilder.Entity<MyClass>().Property(m => m.MyProperty).HasPrecision(12, 10); base.OnModelCreating(modelBuilder); } }</code>
透過這種方法,我們可以明確定義十進位屬性的精確度和小數位數,確保資料庫列準確地表示所需的資料格式和範圍。這在處理財務或其他需要高精度的敏感資料時尤其重要。
以上是如何在 EF Code First 中配置十進位資料類型的精確度和小數位數?的詳細內容。更多資訊請關注PHP中文網其他相關文章!