У меня проблемы с вставкой значений в столбцы SQL Server типа decimal (38, 20) из BizTalk 2013 с использованием адаптера WCF-SQL.Я получаю InvalidCastException с сообщением: «System.InvalidCastException: указанное приведение недопустимо»
Если я проверяю десятичный тип столбца (18,18), это работает.
Похоже на адаптер WCF-SQLне обрабатывает десятичную с очень высокой точностью.Вопрос в чем ограничение?И, если есть обходной путь?
Когда я генерирую XSD из информации таблицы базы данных, десятичное число (38,20) превращается в xs: строку с ограничением длины 40. Может быть, это признак того, что WCF-SQLадаптер не может справиться с такой точностью ...?Я также проверил, чтобы изменить XSD на xs: десятичное, но без разницы.
Кто-нибудь?
ADDITION : Не нашел "хорошего" способа обработкиэто ограничение.
Окончательная настройка: XML => WCF-SQL адаптер => Хранимая процедура с параметром типа таблицы, содержащим столбцы varchar (40) => Столбцы переменной таблицы CAST в десятичную (38,20) по одному-one => ВСТАВИТЬ в таблицу назначения.
Таким образом, решение состояло в том, чтобы изменить тип таблицы для принятия varchar и вручную преобразовать в хранимую процедуру.
Был бы рад, если бы кто-то мог объяснить лучшее решение!