C# 每个子类的Fluent NHibernate表保存

C# 每个子类的Fluent NHibernate表保存,c#,.net,nhibernate,inheritance,fluent-nhibernate,C#,.net,Nhibernate,Inheritance,Fluent Nhibernate,这是我的设置: public class Parent { public virtual int Id { get; protected set; } public virtual Property1 { get; set; } } public class Child : Parent { public virtual Property2 { get; set; } } public sealed class ParentMap : ClassMap<Pare

这是我的设置:

public class Parent
{
    public virtual int Id { get; protected set; }
    public virtual Property1 { get; set; }
}

public class Child : Parent
{
    public virtual Property2 { get; set; }
}

public sealed class ParentMap : ClassMap<Parent>
{
    public ParentMap()
    {
        Id( m => m.Id );
        Map( m => m.Property1 );
    }
}

public sealed class ChildMap : SubclassMap<Child>
{
    public ChildMap()
    {
        KeyColumn( "ParentId" );
        Map( m => m.Property2 );
    }
}
公共类父类
{
公共虚拟整数Id{get;protected set;}
公共虚拟属性1{get;set;}
}
公共类子级:父级
{
公共虚拟属性2{get;set;}
}
公共密封类ParentMap:ClassMap
{
公共ParentMap()
{
Id(m=>m.Id);
Map(m=>m.Property1);
}
}
公共密封类ChildMap:子类映射
{
公共儿童地图()
{
KeyColumn(“ParentId”);
Map(m=>m.Property2);
}
}
这对于检索数据非常有用。但是我该如何保存这个呢?我想在附加到父项的数据库中创建一个新的子记录。如果我创建了一个具有相同父级值的新子类并保存,我会收到错误消息,称具有相同标识符值的另一个对象已与entity:child的会话2关联

我想这是有道理的,但是如何创建一个在数据库中具有相同父级的新子级呢


也许这是不可能的,我应该从父代到子代进行一对多的继承。

您滥用了继承。无法更改对象的类型


您可能想要一对一。

您滥用了继承。无法更改对象的类型


你可能想要一对一。

我想可能是这样。谢谢你的确认。我想可能是这样的。谢谢你的确认。