Одна из неприятных вещей в Entity Framework заключается в том, что он преобразует тип переменной Decimal в десятичный (18, 0) в SQL.
Число после запятой - это количество знаков после запятой, допустимое для этого числа. Таким образом, десятичное число (18,0) будет убирать числа после десятичной точки при сохранении.
Перейдите в раздел «Управление сервером SQL Server», найдите свою базу данных, щелкните правой кнопкой мыши таблицу и выберите «Дизайн». Затем выберите столбец из списка, и вы сможете изменить тип данных на Десятичный (18, 2), просто набрав в поле. Затем сохраните изменения в таблице. Затем он сохранит число в обычных двух десятичных разрядах, используемых в транзакциях в западной валюте. Если вам нужно больше десятичных знаков, просто увеличьте второе число в скобках соответственно.
Я никогда не находил настройки, которая изменяет это значение по умолчанию для EF, чтобы вместо этого генерировалось десятичное число (18, 2). Но тогда я никогда не смотрел: достаточно легко изменить в БД. Но если кто-то знает об этом, мне было бы интересно узнать, как это делается.
РЕДАКТИРОВАТЬ: дополнительная информация - в том числе исправление конфигурации - в этом ответе:
Десятичная точность и масштаб в EF Code First