Я только что был озадачен этой проблемой в течение часа, и я досадно нашел проблему в конце концов.
ОБСТОЯТЕЛЬСТВА
У меня есть таблица, в которой в качестве первичного ключа используется строка, эта таблица имеет различные отношения «многие к одному» и «многие ко многим», все эти первичные ключи.
При поиске нескольких элементов из таблицы все отношения возвращались. Однако всякий раз, когда я пытался получить объект по первичному ключу (строке), он не возвращал никаких отношений, они всегда были равны 0.
ЧАСТИЧНОЕ РЕШЕНИЕ
Поэтому я заглянул в свои журналы, чтобы увидеть, что делает SQL, и это возвращает правильные результаты. Так что я пробовал разные вещи разными способами, и в итоге все получилось. Случай передачи строки в метод get не был точно таким же, как в базе данных, поэтому, когда он пытался сопоставить элементы отношений с основным объектом, он ничего не находил (или, по крайней мере, NHIbernate не потому, что, как я уже говорил выше, SQL на самом деле возвращал правильные результаты)
РЕАЛЬНОЕ РЕШЕНИЕ
Кто-нибудь еще сталкивался с этим? Если так, как вы говорите NHibernate игнорировать регистр при сопоставлении результатов SQL с сущностью? Это глупо, потому что это сработало на отлично, но теперь внезапно стало обращать внимание на случай строки.