Не удается заставить Fluent nHibernate работать с подклассами

Поэтому я хотел бы иметь BaseEntity, который содержит общие столбцы, которые появляются во всех таблицах, и использует наследование для сохранения сопоставления этих полей в одном месте. Для простоты я включу только одно поле (Id). Код выглядит следующим образом:

[Serializable]
public abstract class BaseEntity
{
    public Guid Id { get; set; }
}

public class Hedge : BaseEntity
{
    public virtual DateTime HedgeDate { get; set; }
    public virtual DateTime SettleDate { get; set; }
}

public class Trade : BaseEntity
{
    public virtual DateTime TradeDate { get; set; }
    public virtual DateTime SettleDate { get; set; }
}

Отображение выглядит следующим образом:

public class BaseEntityMap : ClassMap<BaseEntity>
{
    public BaseEntityMap()
    {
        Id(x => x.Id).GeneratedBy.GuidComb();
        UseUnionSubclassForInheritanceMapping();
    }
}

public class HedgeMap : SubclassMap<Hedge>
{
    public HedgeMap()
    {
        Map(x => x.HedgeDate);
        Map(x => x.SettleDate);
    }
}

public class TradeMap: SubclassMap<Trade>
{
    public TradeMap()
    {
        Map(x => x.TradeDate);
        Map(x => x.SettleDate);
    }
}

Для загрузки конфигурации я использую следующий код:

Configuration cfg =
                Fluently.Configure()
                    .Database(MsSqlConfiguration.MsSql2008
                                  .ConnectionString(TestDatabaseConnection.ConnectionString))
                    .Mappings(m => m.FluentMappings.AddFromAssemblyOf<HedgeMap>()
                    ).BuildConfiguration();

Теперь, когда я запускаю свои модульные тесты, конфигурация загружается и создается успешно, однако конфигурация пуста (нет карт классов). Насколько я могу судить, я следую документации, доступной на веб-сайте fluent-nhibernate. Кто-нибудь знает, что я делаю неправильно?


person Bitfiddler    schedule 10.01.2012    source источник
comment
Странно, перезагрузил машину и проблема исчезла. Следующая проблема заключается в том, что подклассы, похоже, не работают с дженериками должным образом, но это не функция, явно заявленная как поддерживаемая на веб-сайте, поэтому я не буду касаться этого здесь ;-)   -  person Bitfiddler    schedule 11.01.2012
comment
Это может помочь вам. philliphaydon.com/2011/08/ < a href="http://www.philliphaydon.com/2011/08/fluent-nhibernate-table-inheritance-distributors-part-2/" rel="nofollow noreferrer">philliphaydon.com/2011/08/   -  person Phill    schedule 11.01.2012