При переводе проекта на версию NHibernate 3.0 столкнулся с неприятным багом: если использовать значение типа int в методе SetParameter (установка именованого параметра запроса) для выборки по полю типа byte получим исключение: Specified cast is not valid. В версии 2.0 такой проблемы не было. Дело в том, что в методе Set класса ByteType (используется именно он, т.к. Хибернейт умный и узнает тип поля из маппинга) след. строчка:((IDataParameter) cmd.Parameters[index]).Value = (byte)value;В прочих классах Int16Type и тд такого нету – используется прямое присваивание параметра типа object, он конвертится уже дальше в BCL, более корректными методами. Для себя эту неоднозначность исправил, засабмитил баг в трекер.Read more: .NET разработка от devlanfear
0 comments:
Post a Comment