在 EF Code First 中微調小數精度和小數位
對應到 SQL Server 時,實體框架 (EF) Code First 預設為 decimal(18, 0)
屬性的 System.Decimal
。 但是,您通常需要對精度和比例進行更多控制。 涉及直接 EntityPropertyConfiguration
操作的舊方法現已過時,並被 EF 4.1 及更高版本中更簡化的方法所取代。
利用DecimalPropertyConfiguration.HasPrecision
DecimalPropertyConfiguration
類別提供了HasPrecision
方法來進行精確控制。 其語法為:
<code class="language-csharp">public DecimalPropertyConfiguration HasPrecision(byte precision, byte scale)</code>
precision
:總位數(小數點前後)。 scale
:小數點後的位數。 實際範例:設定精確度與比例
在 DbContext
類別的 OnModelCreating
方法中,您可以指定精確度和小數位數:
<code class="language-csharp">public class EFDbContext : DbContext { protected override void OnModelCreating(DbModelBuilder modelBuilder) { modelBuilder.Entity<MyClass>().Property(e => e.MyDecimalProperty).HasPrecision(12, 10); base.OnModelCreating(modelBuilder); } }</code>
這會將 MyDecimalProperty
實體中的 decimal
(類型為 MyClass
)對應到 SQL Server decimal(12, 10)
欄位。 這可確保資料庫儲存最多 12 位數字,最多 10 位小數。
以上是如何控制 EF Code First 中小數屬性的精確度和小數位數?的詳細內容。更多資訊請關注PHP中文網其他相關文章!