Я перехожу от Fluent to Loquacious, и я столкнулся с проблемой, когда мои перехватчики не получают все поля, как я думаю, они должны. Если я смотрю на OnSave функцииПерехватчики Nhibernate не собирают свойства базового класса
public override Boolean OnSave(Object entity, Object id, Object[] state,
String[] propertyNames, IType[] types)
и принять взгляд на propertyNames только элементы, там есть элементы, которые были явно отображены в файле отображения (в данном примере это будет просто ID, Старт, и Конец).
В моем случае, хотя у меня есть базовый класс, который не отображается вообще. Вместо этого он просто содержит свойства, которые заполняются перехватчиками. Это использовалось для работы в 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 он не нужен.
вы использовали Автоотображение с FNH? – Firo