Ошибка при меппинге иерархии в NHibernate - CodeHelper

Ошибка при меппинге иерархии в NHibernate

1

Иерархия классов отображается на реляционную базу методом table-per-hierarchy. То есть вся иерархия хранится в одной таблице. В NHibernate для этого нужно в файле меппинга объявить discriminator (поле по которому различаются классы) и подклассы (subclass). Но при запуске приложения с такой конфигурацией вылетает исключение:

Элемент "class" в пространстве имен "urn:nhibernate-mapping-2.2" имеет недопустимый дочерний элемент "discriminator" в пространстве имен "urn:nhibernate-mapping-2.2". Список ожидаемых элементов: "property, many-to-one, one-to-one, component, dynamic-component, any, map, set, list, bag, idbag, array, primitive-array, join, subclass, joined-subclass, union-subclass, loader, sql-insert, sql-update, sql-delete, filter" в пространстве имен "urn:nhibernate-mapping-2.2\".

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

Лучший ответ:

1

Эта ошибка обычно возникает из-за того, что элемент discriminator расположен неверно внутри файла описания меппинга. По схеме xml-документа тег discriminator должен располагаться сразу после элемента id

v1.7.123.556
© 2009—2010 CodeHelper FAQ | О сайте | Обратная связь | История изменений | Статьи
Creative Commons LicenseМатериалы сайта распространяются под лицензией Creative Commons Attribution-Share Alike 3.0 Unported.