Skip to content

Commit f02d583

Browse files
committed
fix(decimal): round values to scale in ConfigureParameter to avoid overflow
1 parent 46be20d commit f02d583

File tree

1 file changed

+6
-0
lines changed

1 file changed

+6
-0
lines changed

src/EFCore.Ydb/src/Storage/Internal/Mapping/YdbDecimalTypeMapping.cs

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
using System;
12
using System.Data.Common;
23
using Microsoft.EntityFrameworkCore.Storage;
34

@@ -34,9 +35,14 @@ protected override string ProcessStoreType(
3435
protected override void ConfigureParameter(DbParameter parameter)
3536
{
3637
base.ConfigureParameter(parameter);
38+
3739
var p = (byte)(Precision ?? DefaultPrecision);
3840
var s = (byte)(Scale ?? DefaultScale);
41+
3942
parameter.Precision = p;
4043
parameter.Scale = s;
44+
45+
if (parameter.Value is decimal d)
46+
parameter.Value = decimal.Round(d, s, MidpointRounding.ToEven);
4147
}
4248
}

0 commit comments

Comments
 (0)