Во-первых, вы уверены , что 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 запишет запросы, которые он выполняет, и он может отображаться в ваших журналах, модульных тестах или чем-то еще, в зависимости от того, как у вас настроены вещи.