这是我的设置:
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 );
}
}
这非常适合检索数据。我怎么去保存这个呢?我想在附加到父级的数据库中创建一个新的子记录。如果我创建一个具有相同父值并保存的新子类,则会收到错误a different object with the same identifier value was already associated with the session: 2, of entity: Child
我想这是有道理的,但是如何创建一个在数据库中具有相同父级的新Child?
也许这是不可能的,我应该从父母到孩子做一对一。
答案 0 :(得分:1)
你滥用继承权。您无法更改对象的类型。
你可能想要一对一。