Fluent nhibernate 如何在fluent NHibernate中使用fluent映射排除基类?
我有一个抽象的基类,Fluent nhibernate 如何在fluent NHibernate中使用fluent映射排除基类?,fluent-nhibernate,schema,nhibernate-mapping,Fluent Nhibernate,Schema,Nhibernate Mapping,我有一个抽象的基类,实体,我的所有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); } } 我正在自动生成我
实体
,我的所有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);
}
}
我正在自动生成我的数据库模式,除了实体基类作为表添加外,一切看起来都很好。使用fluent mappings,如何配置它,以便将实体类从数据库架构中排除?您可以将其添加到自动映射器的忽略列表中:
AutoMap.AssemblyOf<Entity>()
.IgnoreBase(typeof(Entity));
AutoMap.AssemblyOf()的
.IgnoreBase(类型(实体));
哇,找到我的答案了。实体表是上一代数据库架构生成的遗留数据。显然,NHibernate只生成新表(如果旧表具有相同的名称,则删除旧表以替换为新表),但不删除任何不重叠的现有表。
AutoMap.AssemblyOf<Entity>()
.IgnoreBase(typeof(Entity));