我有一个抽象的基类,它继承了Sharp Arch的Entity类:
/// <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; }
}
}
这是遗留数据库,实际上Id列被称为“HelpPageID”,所以我有一些映射覆盖为:
mapping.Id(x => x.Id, "HelpPageID");
当我继承HelpPage
时,生成的用于查询Entity
的sql工作正常。但继承IndexedEntity
,当转换为sql时,将忽略列名覆盖,而是将Id
用于该列,从而失败。
修改 似乎是覆盖的一般问题,因为直接在类中放置覆盖具有相同的净效果
答案 0 :(得分:0)
映射覆盖仅针对精确类型执行,而不是在mappingoverride中对类型进行子类化的类型。你必须为子类指定覆盖。