【问题标题】:How do I exclude a base class using fluent mappings in Fluent NHibernate?如何在 Fluent NHibernate 中使用流畅的映射排除基类?
【发布时间】:2009-11-21 01:34:21
【问题描述】:

我有一个抽象基类Entity,我所有的 POCO 都来自:

public abstract class Entity
{
    public virtual Guid Id { get; set; }
}

还有映射文件:

public class EntityMap<T> : ClassMap<T> where T : Entity
{
    public EntityMap
    {
        Id(x => x.Id);
    }
}

这样,我就不用在每个映射文件中都写Id(x =&gt; x.Id)了:

public class Something : EntityMap<T>
{
    blahblah
}

我正在自动生成我的数据库模式,一切看起来都很好,除了 Entity 基类被添加为一个表。使用 fluent 映射,如何配置它以便将实体类从数据库架构中排除?

【问题讨论】:

  • 哎呀,找到了我的答案。 Entity 表是以前的数据库模式生成遗留下来的。显然 NHibernate 只生成新表(如果它们具有相同的名称,则删除旧表以便用新表替换它们),但不会删除任何不重叠的现有表。

标签: fluent-nhibernate schema nhibernate-mapping


【解决方案1】:

您可以将其添加到自动映射器的忽略列表中:

AutoMap.AssemblyOf<Entity>()
  .IgnoreBase(typeof(Entity));

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-03-14
    • 1970-01-01
    • 2010-11-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-11-14
    • 1970-01-01
    相关资源
    最近更新 更多