每个子类保存的流利 NHibernate 表

Posted

技术标签:

【中文标题】每个子类保存的流利 NHibernate 表【英文标题】:Fluent NHibernate Table Per Subclass Saving 【发布时间】:2010-12-09 18:54:37 【问题描述】:

这是我的设置:

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

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

也许这是不可能的,我应该做一个从父母到孩子的一对多。

【问题讨论】:

【参考方案1】:

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

您可能想要一对一。

【讨论】:

我认为可能是这样。感谢您的确认。

以上是关于每个子类保存的流利 NHibernate 表的主要内容,如果未能解决你的问题,请参考以下文章

流利的 NHibernate 多对多创建附加表

您如何在流利的 nhibernate 中映射和使用连接表?

使用流利的nhibernate映射枚举

流利的 NHibernate 多对多与额外的列不插入

NHibernate 命名查询,每个子类都有表

使用流利的 nhibernate 映射枚举