3

Я получаю следующее исключение при попытке сохранить значение в БД с помощью EntityFrameworkзначение параметра «163753323027,987000000» находится вне диапазона

InnerException: An error occurred while updating the entries. See the inner exception for details. 
InnerException -> InnerException: Parameter value '163753323027.987000000' is out of range. 

Я попытался все решения при условии. Но все же не удалось решить проблему. Я использую EntityFramework, SQL Server. Это не кодовая.

В моей таблице У меня есть столбец

ActualHydPressureDropPipe decimal(30, 10) 

Приложение значение для сохранения в БД является 163753323027.987000000

Я не могу попробовать ответить, представленную здесь here, потому что выигрыш, класс EntityTypeConfiguration.

Я попробовал ответ дать here

protected override void OnModelCreating(DbModelBuilder modelBuilder) 
{ 
    modelBuilder.Entity<Mud_Volumes>().Property(x => x.ActualHydPressureDropPipe).HasPrecision(30, 10); 
    base.OnModelCreating(modelBuilder); 
} 

Это не работает либо. Я не уверен, почему элемент управления не входит в вышеуказанный метод. Может быть, потому, что это не первый код.

Я проверил в моем EDMX меня

<Property Type="Decimal" Name="ActualHydPressureDropPipe" Nullable="false" Precision="30" Scale="10" /> 

Пожалуйста совет.

+0

попробуйте только 163753323027 и, возможно, это скажет вам кое-что о причине. – toddmo

ответ

2

Я пробовал все. Я пытался увеличить точность и дальность. Но проблема все еще сохранялась. Забавно, что она автоматически решена после перезапуска моей Visual Studio.

Странно. Но иногда некоторые вещи просто нуждаются в перезагрузке, чтобы исправить себя.

1

У меня была аналогичная проблема. При записи в десятичную (18,0) мое сообщение об ошибке было: Значение параметра '0.7880523731587561374795417349' за пределами допустимого диапазона.

Я попробовал решение выше, перезапустив VS, но не повезло. Однако добавление округление решить мою проблему:

Math.Round((0.7880523731587561374795417349m), 4) 

Смешные достаточно, это работало, даже на самом деле десятичное (18,0) не хранит цифры после десятичной точки. Он должен быть десятичным (18,4), чтобы сохранить округленную фигуру.

Смежные вопросы