У меня есть десятичный столбец БД (6,1)
При сохранении записи с помощью LINQ to SQL оно усекает значение вместо округления.
Так, например, если параметр, переданный этому столбцу в сгенерированном запросе LINQ to SQL, имеет это значение ...
- @ p1: десятичное число ввода (размер = 0; точность = 6; масштаб = 1) [222.259]
данные будут отображаться в БД как 222,2 вместо 222,3
Затем, если я изменю тот же столбец в БД на десятичный (7,2) и не перегенерирую классы LINQ to SQL, сохранение записи с использованием LINQ все равно будет усечено ...
- @ p1: десятичное число ввода (размер = 0; точность = 6; масштаб = 1) [222.259]
данные будут отображаться в БД как 222,20 вместо 222,26 (или 222,30)
Кто-нибудь знает, правильное ли это поведение для LINQ? Или это провайдер SqlServer? Это не ведет себя так же, как при написании запроса вручную в mgmt studio, поэтому я не понимаю, почему он усекается вместо округления.
Следующий запрос в mgmt studio ...
ОБНОВЛЕНИЕ TheTable SET TheDecimalColumn = 222.259
установит значение val в 222,3, если столбец десятичный (6,1), и в 222,26, если он десятичный (7,2)
Спасибо