我试图从我的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>
有什么想法吗?
答案 0 :(得分:2)
看一下错误:
错误:42P01:关系“电影”的确如此 不存在
这是小写电影,而不是在你的SQL中使用的双引号(!)之间的大写电影。 PostgreSQL使用小写,或者你必须使用双引号。
建议:始终在数据库中使用小写字母作为对象名。