2009-10-12 6 views
3

Я использую NHibernate (2.0.1GA) с моим проектом. Во время выполнения я получаюКак отлаживать сопоставление NHibernate?

Invalid Cast (check your mapping for property type mismatches); 
[...] 

Значит, это говорит только о том, что он не может что-то бросить. Это немного нечеткое imho.

Мой картографический файл довольно большой (мастер-таблица с примерно 50 колонами плюс 11 подмножеств). Как найти недопустимый листинг, не проверяя каждую строку в нем на соответствующие классы & столов ?!

ответ

1

Получить трюк pdbs (или просто получить источник), и выяснить, где первое исключение, а затем вернуться в стеке, пока вы не увидите, что он пытается сделать.

+0

Возможно, вы можете объяснить это немного дальше. Поскольку я относительно новичок в .NET. Я знаю, где находятся pdbs, но как я могу «выяснить, где первое исключение исключается, а backtrack [it] в stacktrace»? Извините за меня, вероятно, очень сильно noobish ... –

+0

@ MAD9 В Visual Studio, когда вы отлаживаете, вы можете сказать, что среда IDE прерывается всякий раз, когда генерируется исключение. Если у вас включен pdbs, он будет разорваться в NH-коде, чтобы вы могли видеть исключение, когда оно происходит. Кроме того, в Visual Studio есть окно stacktrace, которое позволяет вам видеть последовательность, которая была сделана для перехода к этой точке. Вы можете дважды щелкнуть по любой позиции в последовательности, и она будет прыгать назад/вперед в эту точку, чтобы вы могли видеть информацию на этом уровне в стеке. – Joseph

+0

это тоже относится к C# Express Edition? –

0

Это происходит, когда вы запускаете конкретный запрос? Тогда у вас есть более ограниченные подозреваемые, установленные :-): только таблицы и столбцы подразумеваются ...

Я стараюсь убирать таблицы из запроса, чтобы узнать, в какой таблице возникла проблема. Тогда, возможно, такое же отношение к полям ...


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

Смежные вопросы