Есть ли в NHibernate какие-либо инструменты или, возможно, служебные методы, которые могут помочь мне определить, какое отображение выдает «Указанный ключ отсутствует в словаре»?
Я понимаю, что у меня плохое отображение, но у меня есть сотни доменных объектов. Что я могу сделать, чтобы быстрее найти источник моей ошибки?
Из NHibernate 2.1.2GA Источник:
private PersistentClass GetPersistentClass(string className)
{
PersistentClass pc = configuration.classes[className]; // <- "The given key was not present in the dictionary"
if (pc == null)
{
throw new MappingException("persistent class not known: " + className);
}
return pc;
}
И в этом случае className - это System.Int32.
Хорошо, поэтому у меня было поле int, помеченное <many-to-one>
вместо <property>
. Я закончил тем, что выкопал источник для NH и отладил, чтобы добраться до этой точки.