Обновлен Npgsql(1.0 -> 2.05) и получена ошибка (ObjectNotFoundException) в NHIbernate

Я обновил драйвер 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 ответа

Решение

Это ошибка в драйвере Npgsql:

https://nhibernate.jira.com/browse/NH-1819?focusedCommentId=18222&page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel

Спасибо, в любом случае...

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

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

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

Как только у вас будет этот набор, NHibernate запишет запросы, которые он выполняет, и он может отображаться в ваших журналах, модульных тестах или чем-то еще, в зависимости от ваших настроек.

Другие вопросы по тегам