EFスキーマモデルとデータベースの両方で精度が4に設定されている場合、Entity Framework 4が小数点以下2桁に丸められる理由を理解しようとしています.
これは、10 進数フィールドの 1 つのスキーマ定義です。
これは私のデータベース定義です
CREATE TABLE OrderItems(
....
[SellPrice] [decimal](19, 4) NOT NULL,
....
製品の販売価格を計算した後に挿入クエリを実行すると、十分な小数があることがわかります。
MiniProfiler にクエリが表示され、値に 10 進数があることが表示されます
DECLARE ...
@15 Decimal = '100,54347826086956521739130435',
...
insert [dbo].[OrderItems](..., [SellPrice], ...)
values (..., @15, ....)
select [OrderItemId]
from [dbo].[OrderItems]
where @@ROWCOUNT > 0 and [OrderItemId] = scope_identity()
しかし、Microsoft Sql Profiler を見ると、SellPrice
丸められています。
exec sp_executesql N'insert [dbo].[OrderItems](..., [SellPrice], ...)
values (..., @15, ...)',
...,@15=100.54,...'
値が丸められている場所を見つけるのに苦労しています。