2

我有一张桌子。那是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实例并将一些添加PChildP. 当我保存S实例时,它会给出错误P is not exist。有人对此有任何想法吗?

请分享你的看法。

4

1 回答 1

0

您的继承映射设置是“每个子类的表”。这意味着您将为不同的班级提供不同的表格。我不确定,但在我看来你无法保存,因为你只有一张桌子。您可以在此处的子类部分找到更多信息。

于 2013-04-30T02:05:21.463 回答