LINUX.ORG.RU

Проблемы с извлечением данных в NHibernate


0

2

Всем привет. Итак, что имеется в наличии: учебная БД, поднятая на локальном сервере PostgreSQL версии 9.0, она пока что состоит из одной таблицы (Book).

Вот структура таблицы Book: http://pastebin.ubuntu.com/744970

Класс сущности Book: http://pastebin.ubuntu.com/744973/

Файл маппинга Book: http://pastebin.com/se5hSwGb

Тестовый код: http://pastebin.com/fJuK1Sdm

В итоге, при запуске в отладчике соединение с базой проходит без ошибок, но свойство Count переменной bookList равно 0 при том, что тестовые записи в этой таблице точно есть: заранее заносил их.

Что тут может быть не так? Всем спасибо.

Ответ на: комментарий от encyrtid

Пересобрал, теперь MappingsCount = 1. Но Count в bookList по-прежнему равно 0. В отладочную консоль выводится что-то типа «NHibernate: SELECT this.Id as Id0_0_, this.Name as Name0_0_...» и так далее.

LongLiveUbuntu ★★★★★
() автор топика
Ответ на: комментарий от LongLiveUbuntu

Заработало таки на Postgres. При следующих изменениях:

- переименован маппинг Book.nbm.xml в Book.hbm.xml;

- generator class=«sequence» вместо identity (это работает только в mssql);

- тип свойства Price заменен на Decimal, с Currency вылетали эксепшены на дробных значениях;

- в hibernate.cfg.xml удалена строчка mapping assembly=«Eg.Core» (вызывает эксепшен при маппинге);

- закомментируй строчку: new SchemaExport(nhConfig).Execute(false, true, false), она нужна только если меняется какое-то свойство таблицы, она затирает все имеющиеся записи в таблице.

encyrtid ★★★★★
()
Ответ на: комментарий от encyrtid

Хорошо, позже спишемся.

Пока что в строке IEnumerable<Book> bookList = openSession.QueryOver<Book>().List<Book>() выкидывается GenericADOException

Тип Currency исправил на Decimal.

LongLiveUbuntu ★★★★★
() автор топика
Ответ на: комментарий от encyrtid

Есть:

could not execute query [ SELECT this_.Id as Id0_0_, this_.Name as Name0_0_, this_.Description as Descript3_0_0_, this_.Price as Price0_0_, this_.Author as Author0_0_, this_.ISBN as ISBN0_0_ FROM Book this_ ] [SQL: SELECT this_.Id as Id0_0_, this_.Name as Name0_0_, this_.Description as Descript3_0_0_, this_.Price as Price0_0_, this_.Author as Author0_0_, this_.ISBN as ISBN0_0_ FROM Book this_]

LongLiveUbuntu ★★★★★
() автор топика
Ответ на: комментарий от LongLiveUbuntu

Может с провайдером проблема? Я использовал

<property name="connection.provider">NHibernate.Connection.DriverConnectionProvider</property>
в hibernate.cfg.xml

encyrtid ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.