PostgreSQL с ошибкой запроса nHibernate (.net, pgsql) - PullRequest
0 голосов
/ 11 ноября 2010

Я пытаюсь получить список всех фильмов из моей базы данных PostgreSQL, например:

IQuery query = session.CreateQuery("FROM Movie");

но получите эту ошибку: ОШИБКА: 42P01: отношение "фильмы" не существует

Вот запрос, который я использую в pgAdminIII, который работает

SELECT 
  "Movies"."Id", 
  "Movies"."Title", 
  "Movies"."Director", 
  "Movies"."ReleaseDate"
FROM 
  public."Movies";

Похоже, что неверный запрос, который строится из nHibernate. Вот настройка web.config.

<configSections>
    <section name="hibernate-configuration" requirePermission="false" type="NHibernate.Cfg.ConfigurationSectionHandler, NHibernate" />
</configSections>
<hibernate-configuration xmlns="urn:nhibernate-configuration-2.2">
    <session-factory name="NHibernate.Test">
        <property name="connection.provider">NHibernate.Connection.DriverConnectionProvider</property>
        <property name="connection.driver_class">NHibernate.Driver.NpgsqlDriver</property>
        <property name="connection.connection_string">Server=localhost;database=Movies;User ID=movie;Password=password;</property>
        <property name="dialect">NHibernate.Dialect.PostgreSQLDialect</property>
        <property name='proxyfactory.factory_class'>NHibernate.ByteCode.Castle.ProxyFactoryFactory, NHibernate.ByteCode.Castle</property>
    </session-factory>
</hibernate-configuration>

Есть идеи?

1 Ответ

2 голосов
/ 11 ноября 2010

Посмотрите на ошибку:

ОШИБКА: 42P01: отношение "фильмы" делает не существует

Это фильмы в нижнем регистре, а не в верхнем. Фильмы между двойными кавычками (!), Которые вы используете в своем фрагменте SQL. PostgreSQL использует строчные буквы, или вы должны использовать двойные кавычки.

Совет: всегда используйте строчные буквы для имен объектов в вашей базе данных.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...