Свободный NHibernate: отладка FluentConfigurationException - PullRequest
4 голосов
/ 15 декабря 2009

Мне нравится использовать Fluent NHibernate с AutoMappings, но время от времени я получаю эту ошибку времени выполнения при попытке создать свободную конфигурацию: ' При создании SessionFactory использовалась неверная или неполная конфигурация. Проверьте коллекции PotentialReasons и InnerException для получения более подробной информации. '

Теперь это может означать все виды вещей, но детали исключений не очень полезны. Иногда класс, который не может обработать NHibernate, будет указан в InnerException, в других случаях я получаю мистические сообщения, подобные этому:

{"(XmlDocument) (3,6): Ошибка проверки XML: элемент 'class' в пространстве имен 'urn: nhibernate-mapping-2.2' имеет недопустимый дочерний элемент 'property' в пространстве имен 'urn: nhibernate -mapping-2.2 '. Список возможных ожидаемых элементов:' meta, subselect, cache, синхронизировать, комментировать, tuplizer, id, композитный-id 'в пространстве имен' urn: nhibernate-mapping-2.2 '. "}

Это действительно не помогает мне отследить ошибку. Есть ли способ получить подробный журнал того, что NHibernate пытается сделать (то есть, какой класс / метод он в настоящее время автоматически отображает), чтобы я мог, по крайней мере, определить ту часть моего кода, которая вызывает проблему?

редактирование:

Известные причины этой ошибки:

  • подключение к базе данных (должно быть видно в деталях InnerException)
  • отсутствует виртуальный модификатор в свойствах (должен указывать тип в подробностях InnerException)
  • поле пропущенного идентификатора (дает неспецифическую ошибку, как указано выше)

Ответы [ 2 ]

3 голосов
/ 15 декабря 2009

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

Это дикое предположение, но я видел это сообщение , когда забыл добавить свойство "Id" к одному из классов, которые я пытаюсь отобразить.

Если вы прочитаете сообщение об ошибке, помня об этом, вы увидите, что это одна из вещей, которые потенциально могут отсутствовать.

2 голосов
/ 16 декабря 2009

Вот ссылка, которая может быть полезна - отладка исключений nhibernate . Есть упоминание о настройке логирования, но я сам не пробовал.

Если вы попробуете это, сообщите нам, пожалуйста, как вы разбираетесь.

Еще одна полезная ссылка - устранение неполадок, связанных с ошибками сопоставления с помощью nhibernate

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...