我有一张桌子。那是s。
有两个类1. S
和2. P
Plate继承自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
。有人对此有任何想法吗?
请分享您的观点。
答案 0 :(得分:0)
您的继承映射设置是“table-per-subclass”。这意味着您将为不同的类提供不同的表。 我不确定,但在我看来你无法保存,因为你只有一张桌子。 您可以在Subclasses部分找到其他信息here。