Я использую VS2010, Entity Framework 4.0 и Advantage v. 10 в моем приложении.Я написал оператор Linq-to-Entities (L2E), который пытается преобразовать обнуляемый числовой (десятичный) тип в десятичное.Простой оператор может выглядеть так:
var x = (from test in entities.Tests
select test.ValueA.HasValue ? test.ValueA.Value : 0);
Однако я получаю следующую ошибку:
System.Data.EntityCommandExecutionException: Произошла ошибка при выполнении определения команды.Смотрите внутреннее исключение для деталей.---> Advantage.Data.Provider.AdsException: ошибка 7200: ошибка AQE: состояние = S0000;NativeError = 2159;[Решения iAnywhere] [Advantage SQL Engine] Недопустимый аргумент для скалярной функции: CAST - должен указывать как точность, так и масштаб.- Расположение ошибки в операторе SQL: xxx (строка: x столбец: x) Не удалось выполнить запрос AdsCommand.
Есть ли способ обойти этот недостаток перечисления результатов и выполнения преобразования на стороне клиента?Я не уверен, как сказать Advantage точность и масштаб «0» с помощью оператора L2E.
Заранее спасибо.