現在、MS SQL Server で money 列の型を設定するために以下を使用しています。
entity.Property(e => e.UnitPrice).HasColumnType("smallmoney");
また
entity.Property(e => e.UnitPrice).HasColumnType("money");
あるとすれば、よりデータベースに依存しない方法は何ですか?
現在、MS SQL Server で money 列の型を設定するために以下を使用しています。
entity.Property(e => e.UnitPrice).HasColumnType("smallmoney");
また
entity.Property(e => e.UnitPrice).HasColumnType("money");
あるとすれば、よりデータベースに依存しない方法は何ですか?
Money の代わりに Decimal を使用します。C# と Db で Decimal を使用します。
こちらもご覧ください
modelBuilder.Entity<MetaDomain>().Property(d => d.xyz).HasPrecision(precision, scale);
MSDN 10 進数 の状態
これにより、財務および通貨の計算に適しています。
確かに Decimal は、通貨を扱う最も DB に依存しない方法です。必要な通貨と精度に合わせて精度/スケールを選択する必要があります。また、解決策が 1 つの通貨を超えて適用できない、または適用されることがわかっていない限り、常に金額で通貨自体を追跡することをお勧めします。
「金額」については、通貨自体が表すよりも 4 桁余分にケータリングすることを意味します。業界は、アイテムをわずか数セントで管理する大量小売業者を好むためです。プレゼンテーションで小売業者に小数点以下 4 桁のデモを行わなければなりませんでした。それは、多くの異なる通貨に対応することを意味し、より多くの組織が社内財務で行うように、少なくとも 5 桁の小数点以下に対応することを意味します。念のため、それを超えて計画しています。 XDR特別抽選権