Fluent nhibernate Fluent NHIbernate忽略重写Id属性上的列名
我有一个继承Sharp Arch实体类的抽象基类:Fluent nhibernate Fluent NHIbernate忽略重写Id属性上的列名,fluent-nhibernate,fluent-nhibernate-mapping,Fluent Nhibernate,Fluent Nhibernate Mapping,我有一个继承Sharp Arch实体类的抽象基类: /// <summary> /// defines an entity that will ne indexed by a search crawler and offered up as full-text searchable /// </summary> public abstract class IndexedEntity : Entity { [DocumentId] pub
/// <summary>
/// defines an entity that will ne indexed by a search crawler and offered up as full-text searchable
/// </summary>
public abstract class IndexedEntity : Entity
{
[DocumentId]
public override int Id
{
get { return base.Id; }
protected set { base.Id = value; }
}
}
当我简单地继承实体时,生成的用于查询帮助页的sql工作正常。但是继承IndexedEntity时,当转换为sql时,将忽略列名覆盖,而将Id用于列,因此失败
编辑
覆盖似乎是一个普遍的问题,因为将覆盖直接放置在类中具有相同的净效果映射覆盖仅对确切的类型执行,而不是对mappingoverride中类型的子类执行。您必须为子类指定重写。您使用的是哪种继承策略?TPH?你是说超类?在这种情况下,FNH将在TPH场景中忽略它,因为据我理解和经验,它是抽象的
mapping.Id(x => x.Id, "HelpPageID");