首頁 > 後端開發 > C++ > 如何在 EF Core 程式碼優先遷移中控制小數精確度和小數位數?

如何在 EF Core 程式碼優先遷移中控制小數精確度和小數位數?

Susan Sarandon
發布: 2025-01-21 23:36:11
原創
727 人瀏覽過

How Do I Control Decimal Precision and Scale in EF Core Code-First Migrations?

了解 EF Core 程式碼優先遷移中的小數精確度與小數位數

Entity Framework Core 的程式碼優先方法在將十進位屬性對應到資料庫列時需要仔細考慮。 雖然 SQL Server 中的預設會對應為 decimal(18, 0),但您通常需要根據特定資料要求自訂精確度和小數位數。

定義精確度與尺度

要控制小數列的精確度和小數位數,請利用 HasPrecision 類別中的 DecimalPropertyConfiguration 方法。 此方法接受兩個參數:precision(總位數)和 scale(小數位數)。

範例:

<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>
登入後複製

在此程式碼片段中,MyDecimalProperty 配置為精確度為 12,小數位數為 10,總共 12 位數字,小數點後 10 位。

重要注意事項:

  • 舊版 EF 版本(例如 EF 4.1)不支援 HasPrecision 方法。 對於這些版本,請使用 HasColumnType 方法,如下所示:

    <code class="language-csharp">  modelBuilder.Entity<MyClass>().Property(e => e.MyDecimalProperty).HasColumnType("decimal(12, 10)");</code>
    登入後複製
  • 請記住,precision 代表總位數,而 scale 特指小數點後的數字。

以上是如何在 EF Core 程式碼優先遷移中控制小數精確度和小數位數?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板