Методы System.Math
LINQ to SQL не поддерживает следующие Math методы.
Отличия от платформы .NET
Семантики округления в .NET Framework отличаются от подобных семантик SQL Server. Метод Round в платформа .NET Framework выполняет округление банкира, где числа, заканчивающиеся в 5-м раунде до ближайшей даже цифры, а не на следующую более высокую цифру. Например, число 2,5 округляется до 2, а 3,5 - до 4. (Это помогает избежать систематического смещения в сторону более высоких значений в транзакциях данных.)
В SQL, наоборот, функция ROUND
всегда округляет от нуля. Поэтому число 2,5 округляется до 3, тогда как в платформе .NET Framework - до 2.
LINQ to SQL проходит через семантику SQL ROUND
и не пытается реализовать округление банкира.