Jeer
@Jeer
уверенный пользователь

Почему так работает decimal.Parse?

Добрый день,
Получаю число (тип в базе decimal(38,20)) в типе строка в сервисе c#
var kk = decimal.Parse("884413000");
// kk == 884413000M // что за M?

Далее ошибка переполнения на запись в базу этого значения

Вставка в базу осуществляется через entity framework

var entity = new VendorsLogEntry();
entity.LastBalanceAmount = 884413000M;
db.VendorsLogEntry.Add(entity);
await db.SaveChangesAsync(); //OverflowException: Переполнение при преобразовании.


У этого столбца тип в базе decimal(38,20)

И в контексте:
modelBuilder.Entity<VendorsLogEntry>()
                .Property(e => e.LastBalanceAmount)
                .HasPrecision(38, 20);

Объясните, пожалуйста, что не так? Не такое большое число
  • Вопрос задан
  • 158 просмотров
Решения вопроса 1
Jeer
@Jeer Автор вопроса
уверенный пользователь
В общем, я наткнулся на подобные ошибки при считывании данных. Удивлён, что вообще существует такая бредовая ситуация.
Решилось тем, что я поменял в базе тип поля на money, в entity оно сгенерировалось как decimal(19,4) и ошибка ушла
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы