Байт? не работает как тип параметра в таблице параметров iBatis
Согласно документам iBatis, используется "byte?" как значение типа должно работать в parameterMap
, Я использую DataMapper версии 1.6.1.
Я получаю сообщение об ошибке: Не удалось загрузить тип из строкового значения 'byte?',
Это исключение конфигурации, которое отображает эту информацию в трассировке стека:
Произошла ошибка при загрузке SqlMap.
- Проверьте атрибут отображения типа typeHandler '' (должен быть реализацией ITypeHandlerCallback).
- Ошибка возникла в [sqlMap embedded="MyApp.Data.Config.Rate.xml, MyApp" Mxmlns="http://ibatis.apache.org/dataMapper"]
- Проверьте Rate.InsertParams.]
Вот блок XML для Rate.InsertParams:
<parameterMaps>
<parameterMap id="InsertParams" class="RateCategory">
<parameter property="RateId" column="RateId" type="int"/>
<parameter property="Name" column="Name" type="string" size="32"/>
<parameter property="Charge" column="Charge" type="decimal?"/>
<parameter property="ChargeTypeId" column="ChargeTypeId" type="byte?"/>
</parameterMap>
Есть идеи, почему это не сработает?
2 ответа
После большого количества вопросов и публикации, окончательный ответ заключается в том, что документы неверны.
На официальном форуме iBatis.Net было сказано следующее:
"У вас есть несколько вариантов:
- просто используйте type="byte"
- не указывайте тип
- байт? является синтаксическим сахаром System.Nullable`1[[System.Byte]]"
Который в основном то, что я уже понял сам. Int? работает но байт? не делает. Также не короткий? или долго?
Документы должны быть исправлены.
Насколько я могу сказать, нет никакого "байта?" псевдоним. Вот доказательство.
Вы также можете выяснить, что точно поддерживается, а что нет из этого файла.
"Код никогда не лжет". Документация делает:(