更新了Npgsql(1.0 - > 2.05)并在NHIbernate上出现错误(ObjectNotFoundException)

时间:2009-06-04 13:48:01

标签: nhibernate fluent-nhibernate npgsql

我将Npgsql驱动程序更新到最新版本(2.0.5)并在我的NHibernate应用程序中出错... 映射:

学校制图:

...

References(x => x.City);

...

城市地图:

Id(x => x.ID).GeneratedBy.Assigned();
Map(x => x.Name);
References(x => x.Microrregion);

现在,当我尝试加载一个School时,我得到一个NHibernate.ObjectNotFoundException来对象City ... 但是使用Npgsql 1.0一切正常......

任何想法?

由于

2 个答案:

答案 0 :(得分:0)

首先,你是肯定 City存在吗?你可以针对这两个表运行SQL查询吗?也就是说,SELECT * FROM School LEFT JOIN City ON School.City = City.Id WHERE School.Id = 12345会返回您的期望吗?

如果是这样,请确保NHibernate正在生成您期望的查询。您可以在Fluent界面上设置show SQL属性,如下所示:

PostgreSQLConfiguration
    .Standard // Or whatever dialect you are using
    .ConnectionString(...).ShowSql()

一旦你有了这个集合,NHibernate将编写它正在执行的查询,它可能会出现在你的日志记录或单元测试中,或者其他什么,这取决于你如何设置。

答案 1 :(得分:0)