Как правильно отобразить небольшие двоичные объекты в комбинированном SQLite / NHibernate (неправильная привязка типов)? - PullRequest
1 голос
/ 05 июля 2010

Попытка сохранить свойство типа C # /. NET byte[] в SQLite. Вот мое отображение:

<class name="MyClass" lazy="false" table="MyTable">
   <property name="MyProperty" type ="BinaryBlob" access="property" />
</class>

В SQL server он работает как шарм даже без явного type="BinaryBlob" в отображении. В SQLite я пробовал комбинации различных типов между операторами SQL CREATE TABLE и в NHibernate типах данных, но каждый раз получал либо исключение, что «отображение не может быть скомпилировано» (из-за несовместимости типов), либо исключение, что приведение из извлеченного типа данных к типу отображения невозможно.

Значение MyProperty в операторе вставки выглядит следующим образом: 0x7C87541FD3F3EF5016E12D411900C87A6046A8E8.

Обновление : продолжение отладки System.Data.SQLite.SQLiteDataReader - похоже, независимо от того, какой тип SQL (пробовал decimal, blob, unsigned big int) - сходство типов всегда text.

Что я делаю не так, пожалуйста (технически или вообще)? Любое предложение приветствуется.

Ответы [ 2 ]

0 голосов
/ 27 июля 2010

Причиной сходства text было то, что данные были импортированы в таблицу из файла CSV (значения через запятую) . Переключение на файл SQL с правильным оператором INSERT решило проблему.

0 голосов
/ 27 июля 2010

Вы смотрели на: Как мне сохранить и получить блоб из sqlite ? Также на ayende.com есть статья: Ленивая загрузка BLOB и тому подобное в NHibernate . Эти ссылки могут помочь вам в правильном направлении, чтобы увидеть, что происходит.

...