Поиск источника дублированных отображений в Fluent NHibernate - PullRequest
0 голосов
/ 07 октября 2011

Ранее сегодня я разбил один из моих классов на два, пометив оригинал как абстрактный и создав два подкласса, которые наследуются от абстрактной базы.

Я добавил строку в свое отображение FluentNHibernate, чтобы различать подклассы на основе значения столбца (иерархия таблиц на класс) следующим образом:

DiscriminateSubClassesOnColumn("EntryType");

Это поле является целым числом в базе данных.

Мои новые отображения наследуются от

SubClassMap<MyChildType> 

С новой строкой в ​​методе конструктора MyChildTypeMap для дискриминатора следующим образом:

DiscriminatorValue(1);

Я постоянно сталкиваюсь с этим исключением:

"Duplicate class/entity mapping MyNamespace.MyChildObject"

В конструкторе сеансов Fluent NHibernate (Fluently.Configure () ....) я добавил строку для экспорта сопоставлений в файлы hbm. Конечно, подкласс указан дважды в файле отображения родительского класса.

Я не использую конфигурации AutoMapped. Я использую Fluent NHibernate 1.2.0.0 Я использую NHibernate 3.2.0.400

Я в конце остроумие, пытаясь выяснить, откуда это происходит. Кто-нибудь может помочь?

1 Ответ

2 голосов
/ 08 октября 2011

Быстрый способ увидеть, как создаются ваши сопоставления, - это использовать диагностику FluentNHibernate:

Fluently.Configure()
    .Database(\\your db stuff here)
    .Diagnostics(diag => diag.Enable().OutputToConsole())
    .Mappings(\\mappings);

Это приведет к потоковой передаче (к вашей консоли в этом случае вы также можете OutputToFile) журнала отладкикакие сопоставления создаются из каких классов и что привело к их добавлению или пропуску.

...