Nhibernate отображение на многие классы - PullRequest
0 голосов
/ 02 июля 2019

У меня проблемы с отображением 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

Есть идеи, что я делаю неправильно?

...