У меня проблемы с отображением NHibernate на многие классы, которые происходят из одного базового класса.Я хочу реализовать возможность аудита в своем решении и хочу, чтобы записи AuditLog были в одной таблице со столбцом ParentId.
Классы:
public class AuditableObject
{
private Guid _ID;
private IEnumerable<AuditLog> _AUDIT;
public Guid Id { get => _ID; set => _ID = value; }
public IEnumerable<AuditLog> AuditLogs {get => _AUDIT; set => _AUDIT = value; }
}
public class DerivedOne : AuditableObject
{
...
}
public class DerivedTwo : AuditableObject
{
...
}
public class AuditLog
{
private Guid _ID;
private AuditableObject _PARENT;
public Guid Id { get => _ID; set => _ID = value; }
public AuditableObject Parent { get => _PARENT; set => _PARENT = value; }
}
Отображения:
public class DerivedOneMap : ClassMapping<DerivedOne>
{
Id(d => d.Id, g => g.Generator(Generators.GuidComb));
Bag(d => d.AuditLogs, map => map.Key(k => k.Column("Parent")), rel => rel.OneToMany());
}
public class DerivedTwoMap : ClassMapping<DerivedTwo>
{
Id(d => d.Id, g => g.Generator(Generators.GuidComb));
Bag(d => d.AuditLogs, map => map.Key(k => k.Column("Parent")), rel => rel.OneToMany());
}
public class AuditLog : ClassMapping<AuditLog>
{
Id(al => al.Id, g => g.Generator(Generators.GuidComb));
ManyToOne(al => al.Parent, map => map.Column("Id"));
}
Когда я пытаюсь добавить AuditLog к любому производному AuditableObject и сохранить его в БД, я получаю эту ошибку:
An association from the table AuditLog refers to an unmapped class: AuditableObject
Есть идеи, что я делаю неправильно?