Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM Новый топик    Ответить
 NHibernate, PostgreSQL, квотирование таблиц в файле маппинга.  [new]
Same Person
Member

Откуда:
Сообщений: 13
Всем привет. Решил наконец освоить NHibernate, в качестве БД - PostgreSQL. И вышла у меня неприятность одна.. Например, есть маппинг на тестовую таблицу из учебника:

...вырезано...

<class name="NHibernate.GuitarStore.Common.Inventory,NHibernate.GuitarStore" table="public.Inventory">

...вырезано...

И при попытке получить данные из таблицы я получаю ошибку:

NHibernate: select inventory0_.ID as ID1_, inventory0_.TYPEID as TYPEID1_, inventory0_.BUILDER as BUILDER1_, inventory0_.MODEL as MODEL1_, inventory0_.QOH as QOH1_, inventory0_.COST as COST1_, inventory0_.PRICE as PRICE1_, inventory0_.RECEIVED as RECEIVED1_ from public.Inventory inventory0_

***** ERROR *****
could not execute query
[ select inventory0_.ID as ID1_, inventory0_.TYPEID as TYPEID1_, inventory0_.BUILDER as BUILDER1_, inventory0_.MODEL as MODEL1_, inventory0_.QOH as QOH1_, inventory0_.COST as COST1_, inventory0_.PRICE as PRICE1_, inventory0_.RECEIVED as RECEIVED1_ from public.Inventory inventory0_ ]

[SQL: select inventory0_.ID as ID1_, inventory0_.TYPEID as TYPEID1_, inventory0_.BUILDER as BUILDER1_, inventory0_.MODEL as MODEL1_, inventory0_.QOH as QOH1_, inventory0_.COST as COST1_, inventory0_.PRICE as PRICE1_, inventory0_.RECEIVED as
RECEIVED1_ from public.Inventory inventory0_] - InnerExcepetion: ERROR: 42P01: relation "public.inventory" does not exist

В общем-то понятно, что в запросе не хватает кавычек, т.е. вместо public.Inventory нужно "public"."Inventory". Указанный ниже код проблему решает:

<class name="NHibernate.GuitarStore.Common.Inventory,NHibernate.GuitarStore" table="&quot;public&quot;.&quot;Inventory&quot;">

Но наверняка можно сделать проще, вот и хочу узнать как.

И еще, посоветуйте какую-нибудь толковую книжку для новичков, на русском ничего не нашел, поэтому и англицкий пойдет. Если еще и ссылку на скачку дадите - буду рад. А то выучить хочется, а официальная документация какая-то уж больно "сухая".
4 окт 13, 21:10    [14926175]     Ответить | Цитировать Сообщить модератору
 Re: NHibernate, PostgreSQL, квотирование таблиц в файле маппинга.  [new]
Нахлобуч
Member

Откуда: https://hglabhq.com
Сообщений: 3939
Нужно обернуть в
`
7 окт 13, 10:26    [14932361]     Ответить | Цитировать Сообщить модератору
 Re: NHibernate, PostgreSQL, квотирование таблиц в файле маппинга.  [new]
SolYUtor
Member

Откуда:
Сообщений: 948
Same Person,

вот прям совсем настройкой нельзя. Но если вы используется маппинг по соглашинеям - можно в соглашениях прописать квотирование.

По поводу букварей о NHibernate есть две хороших книги.
NHibernate in action. Старая, но очень хорошо объясняет базовые принципы. Они с тех пор не менялись.
NHibernate cookbook 3.0 - чуть глубже современные возможности и точки расширения.
Много полезного про NH можно найти в блогах Fabio Maulo и Ayende Rahien (на последнего лучше натравить гугл, он шибко много всего пишет :))
7 окт 13, 10:52    [14932490]     Ответить | Цитировать Сообщить модератору
Все форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM Ответить