使用 EF Code First 管理小數精確度和小數位數
Entity Framework (EF) Code First 預設將 System.Decimal
屬性對應到 SQL Server decimal(18, 0)
欄位。 此預設值可能並不總是理想的,特別是當您的應用程式需要更高的精確度或更多的小數位數時。幸運的是,EF API 提供了簡單的方法來自訂此映射。
配置精確度與比例
在 EF 4.1 之前,開發人員通常使用 HasColumnType
方法來調整模型迭代循環中的列屬性。 例如:
<code class="language-csharp">foreach (var property in modelBuilder.Properties.Where(p => p.ClrType == typeof(decimal))) { property.HasColumnType($"decimal({property.Precision}, {property.Scale})"); }</code>
但是,EF 4.1 及更高版本提供了使用 HasPrecision
方法的更簡化的方法。 此方法是 DecimalPropertyConfiguration
的一部分,直接設定精確度和小數位數。
以下是如何使用HasPrecision
:
<code class="language-csharp">modelBuilder.Entity<MyClass>().Property(o => o.MyDecimalProperty).HasPrecision(12, 10);</code>
此程式碼為 MyDecimalProperty
實體中的 MyClass
屬性建立精確度為 12、小數位數為 10 的 SQL Server 欄位。
此方法透過允許精確控制資料庫中的小數儲存來確保 EF Code First 應用程式中準確可靠的資料處理。
以上是如何控制 EF Code First 中小數值的精確度和小數位?的詳細內容。更多資訊請關注PHP中文網其他相關文章!