Свободные подклассы автомата nhibernate из разных сборок

Что мне нужно сделать, так это подклассы автомата моего абстрактного класса страницы. Мне нужно найти их в списке сборок, которые я получаю во время выполнения (на этапе инициализации). У меня нет никаких ссылок на сборки из сборки моих сопоставлений.

Мой класс страницы выглядит примерно так:

public abstract class Page : EntityBase
{
    public virtual int Id { get; protected set; }
    public virtual Page Page { get; set; }
    //Other properties
}

Мои сопоставления выглядят так:

var persistenceModel = new AutoPersistenceModel();
_assemblies.ForEach(x => persistenceModel.AddEntityAssembly(x));
persistenceModel.Setup(x =>
        {
            x.SubclassStrategy = y => SubclassStrategy.Subclass;
            x.DiscriminatorColumn = y => "Type";
        })
.IncludeBase(typeof(Page))
.OverrideAll(x => x.IgnoreProperties(y => typeof(Page)
.IsAssignableFrom(y.ReflectedType) && y.ReflectedType != typeof(Page)))
.Where(y => typeof(EntityBase).IsAssignableFrom(y));

_assemblies - это список сборок для поиска отображаемых сущностей. Он содержит сборку моего класса страницы, а также одну или несколько других сборок, каждая из которых имеет ссылку на базовую сборку (ту, что с моим классом страницы).

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

«Пытался добавить" страницу "многие к одному, когда она уже была добавлена».

Он находит класс, но по какой-то причине пытается сопоставить его как страницу или что-то в этом роде. Но класс страницы уже сопоставлен, поэтому я получаю эту ошибку. Это мое предположение. Кто-нибудь знает, могу ли я как-нибудь обойти это? Или знаете решение?


person Mattias Jakobsson    schedule 16.01.2010    source источник


Ответы (1)


Я только что нашел ссылку эту. Похоже, это пока невозможно.

Изменить

Теперь это исправлено в последней версии fluent nhibernate.

person Mattias Jakobsson    schedule 08.02.2010
comment
Исправили недавно по вашей ссылке. - person Mark Rogers; 25.06.2010
comment
@Mark Rogers, Да, я видел это в последних примечаниях к выпуску. Я обновлю свой ответ :) - person Mattias Jakobsson; 25.06.2010