ホームページ > バックエンド開発 > C++ > EF コードファーストで 10 進プロパティの精度とスケールを制御するにはどうすればよいですか?

EF コードファーストで 10 進プロパティの精度とスケールを制御するにはどうすればよいですか?

Susan Sarandon
リリース: 2025-01-21 23:26:09
オリジナル
334 人が閲覧しました

How Can I Control Precision and Scale for Decimal Properties in EF Code First?

EF コードファーストで 10 進数の精度とスケールを微調整する

Entity Framework (EF) Code First は、SQL Server にマッピングするときに、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) 列にマップします。 これにより、データベースには小数点以下 10 桁までの最大 12 桁の数値が保存されます。

以上がEF コードファーストで 10 進プロパティの精度とスケールを制御するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート