NHibernate: чтение поля BLOB-объекта mysql - значение, возвращаемое как "System.Byte []" - PullRequest
0 голосов
/ 27 апреля 2011

У меня есть класс со свойством:

virtual public string Data { get; set; }

example.hbm.xml привязывает это к:

<property name="Data" type="string" column="data" ></property>

Таблица в MySql создается с помощью:

CREATE TABLE `xxx` (
 `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
 `data` blob,
 PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=binary;

Я могу успешно записать в БД и увидеть текст в столбце, написанный правильно.

Когда я пытаюсь прочитать записи из этой таблицы, значение свойства «Данные» равно «Система»..Байт[]'.Опять же, это ценность этого свойства.Это тип 'System.String'.

Что делать?Заранее спасибо за любые подсказки.

Я тоже пробовал charset = UTF8.

Я также пробовал type = "StringClob" в файле отображения.

Ответы [ 2 ]

3 голосов
/ 27 апреля 2011

Возможно, вам нужно прочитать и записать это как байт [].Таким образом, определение вашего свойства будет выглядеть следующим образом:

public virtual byte[] Data { get; set; }

В дополнение к этому изменению вам потребуется изменить тип в вашем отображении.Я не уверен, что типа.Я думаю, что это может быть BLOB-объект.

Вы можете легко преобразовать эти данные в строку, если вам нужно.

1 голос
/ 27 апреля 2011

Я не эксперт по MySQL, но вы, вероятно, хотите, чтобы тип столбца был text вместо blob.

С этим type="StringClob" должно работать

...