我有一個表。那是s。 有兩類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 2013-04-25 19:25:50
PARENT_ASSET_STRUCTURE_ID是一列。它用於保存板的Structure_id(父ID)。對於結構是NULL。 – 2013-04-26 06:45:05
@jugal:你想要一個解決方案的子類而不使用鑑別器..... !! – Deepak 2013-04-29 12:39:06