我正在从 Fluent 转换为 Loquacious,并且遇到了一个问题,即我的拦截器没有像我认为的那样获取所有字段。如果我查看 OnSave 功能
public override Boolean OnSave(Object entity, Object id, Object[] state,
String[] propertyNames, IType[] types)
并查看 propertyNames,其中唯一的项目是在映射文件中显式映射的项目(在示例中,这只是 ID、Start 和 End)。
就我而言,虽然我有一个根本没有映射的基类。相反,它只包含由拦截器填写的属性。这曾经在 Fluent Nhibernate 中工作,但现在我已经迁移到 Nhibernate 3.3,我无法再让它工作了。
我的类/映射看起来像这样
public class BaseAuditEntity
{
public virtual int ModifiedByUserID { get; set; }
public virtual DateTime LastModifiedTime { get; set; }
}
public class Foo : BaseAuditEntity
{
public virtual int ID { get; protected internal set; }
public virtual DateTime Start { get; protected internal set; }
public virtual DateTime End { get; protected internal set; }
}
public class FooMap: ClassMapping<Foo>
{
Id(x => x.ID, m => m.column("fooID"));
Property(x => x.Start, m => m.column("start"));
Property(x => x.End, m => m.column("end"));
}
关于如何完成这项工作的任何想法?我不想在每个班级都映射这个,而且我认为我不需要映射 BaseAuditEntity,至少在 Fluent 中不需要它。