У меня есть одна таблица. Это с. Есть два класса 1. S
и 2. P
Сопоставление подкласса в NHibernate с использованием той же таблицы
Тарелка наследуется из S. Классы:
public class S
{
public virtual decimal Id { get; set; }
public virtual IList<P> ChildPs { get; set; }
}
public class P : S
{
public virtual GType GType { get; set; }
}
internal class SMap : ClassMap<S>
{
public SMap()
{
Table("s");
Id(x => x.Id).Column("A_S_ID");
/* Set Parent_S_Id */
HasMany<P>(x => x.ChildPs)
.KeyColumn("PARENT_A_S_ID")
.Cascade.All();
}
}
internal class PMap : SubclassMap<P>
{
public PMap()
{
References(x => x.GType)
.Column("G_TYPE_ID")
.ForeignKey("G_TYPE_LU_ID");
}
}
Я создал S
экземпляр и добавить некоторые P
к ChildP
. Когда я сохраняю экземпляр S
, он дает ошибку P is not exist
. Кто-нибудь есть об этом?
Пожалуйста, поделитесь своим взглядом.
Откуда вы знаете, является ли строка в таблице 'structure' типом' Structure' или 'Plate'? Каков дискриминатор между ними? – mickfold
PARENT_ASSET_STRUCTURE_ID - это столбец. Он используется для сохранения Structure_id (родительский идентификатор) для пластин. Для структуры NULL. –
@jugal: Вы хотите решение для подкласса без использования дискриминатора ..... !! – Deepak