如何使用 Fluent NHibernate 自动映射禁用特定抽象基类的子类化

Posted

技术标签:

【中文标题】如何使用 Fluent NHibernate 自动映射禁用特定抽象基类的子类化【英文标题】:How to disable subclassing for a specific abstract base class using Fluent NHibernate auto mapping 【发布时间】:2011-04-19 20:47:31 【问题描述】:

我有一个从我的实体之一引用的抽象基类。这在生成架构时导致以下异常:

Audits 表中的关联引用了一个未映射的类:Entity

因此,我必须在自动持久性模型中包含该基类:

autoPersistenceModel.IncludeBase<Entity>()

现在,我当前的问题是 Fluent NHibernate 为基类创建了一个巨大的映射,为每个实体提供了一个 joined-subclass。这当然不是我想要的。

所以,问题是:如何设置自动映射覆盖,使其不执行任何子类化?

AutoMapping&lt;Entity&gt; 类型似乎只提供了选择子类化策略的方法,但无法禁用它。

【问题讨论】:

【参考方案1】:

经过一番思考,我意识到我可以定义一个自定义映射,就这么简单:

public class EntityMap : ClassMap<Entity>

    public EntityMap()
    
        Id(n => n.Id);
    

【讨论】:

以上是关于如何使用 Fluent NHibernate 自动映射禁用特定抽象基类的子类化的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 Fluent NHibernate 自动映射禁用特定抽象基类的子类化

自动增量(身份)在 Fluent NHibernate 中不起作用

Fluent NHibernate 自动映射:一对多实体,多对多后端?

Fluent NHibernate 多对多映射,使用自动生成的 pk 而不是复合键

如何使用 Fluent 设置 NHibernate.Burrow?

使用 Fluent NHibernate 生成表索引