Свободный вопрос иерархических данных NHibernate (одна таблица на иерархию) - PullRequest
1 голос
/ 22 октября 2010

У меня возникли проблемы с изображением установки базы данных в NH.

У меня есть следующие классы:

    public class BaseData
    {
       public virtual long Id { get; set; }
    }

    public class ExtendedData : BaseData
    {
       public virtual string Name { get; set; }
    }

Таблицы поддержки выглядят следующим образом:

BaseTable
---------
* Id 

ExtendedTable
-------------
* Id
* Name

Вариант использования: я создаю экземпляр ExtendedData, который хочу сохранить.Я ожидаю записи в обеих таблицах (с одним и тем же идентификатором из последовательности).

У кого-нибудь есть идеи, как создать для этого беглое отображение?

Заранее большое спасибо!

Себ

Ответы [ 2 ]

1 голос
/ 26 октября 2010

Поскольку у вас есть базовый класс, вы можете игнорировать его при отображении. Используйте метод .IgnoreBase <> ()

пример:

autoPersistenceModel.IgnoreBase<AdvanceEntity>().IgnoreBase<BaseAchievableArea>().IgnoreBase<AuditableEntity>();

Надеюсь, что это направит вас на правую сторону.

0 голосов
/ 29 октября 2010

Оглядываясь назад, это было слишком просто ...

public class BaseDataMapping : ClassMap<BaseData>
{
    public BaseDataMapping()
    {
        this.LazyLoad();
        this.Table("BaseTable");
        this.Id(x => x.Id, "id").GeneratedBy.Native("SEQ_ID");         
    }
}

public class ExtendedDataMapping : SubclassMap<ExtendedData>
{
    public ExtendedDataMapping()
    {
        this.LazyLoad();
        this.Table( "ExtendedTable" );
        this.Map(x=>x.Name, "Name" );
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...