2009-06-04 4 views
0

Я обновил драйвер Npgsql до последней версии (2.0.5) и получил ошибку в моих NHibernate App ... Отображения:Обновлено Npgsql (1.0 -> 2.05) и получил ошибку (ObjectNotFoundException) на NHibernate

отображение Школа:

...

References(x => x.City); 

...

И Город Mapping:

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

Теперь, когда я пытался загрузить школу, я получил NHibernate.ObjectNotFoundException объекта Город ... Но с Npgsql 1.0 все работает отлично ...

Любая идея?

Благодаря

ответ

0

Во-первых, вы положительный что City существует? Можете ли вы запустить SQL-запрос для этих двух таблиц? То есть, SELECT * FROM School LEFT JOIN City ON School.City = City.Id WHERE School.Id = 12345 вернет то, что вы ожидаете?

Если это так, убедитесь, что NHibernate генерирует запрос, который вы ожидаете. Вы можете установить свойство показать SQL на Fluent интерфейс следующим образом:

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

После того как вы этот набор, NHibernate будет писать запросы его выполнения и может отображаться в ваших каротажных или модульных тестов или любой другой, в зависимости от о том, как у вас есть настройки.