我正在使用Fluent NHibernate的automapper来映射以下域模型(通过AutoMap.AssemblyOf<Ticket>()
),但它在创建SessionFactory时抛出异常。
class Ticket {
Owner TicketOwner { get; set; }
Owner CreatedBy { get; set; }
}
abstract class Owner {
ICollection<Ticket> OwnedTickets { get; set; }
ICollection<Ticket> CreatedTickets { get; set; }
string Name { get; set; }
}
class Person : Owner {
Department EmployeeDepartment { get; set; }
// ...
}
class Department : Owner {
ICollection<Person> People { get; set; }
// ...
}
NHibernate.MappingException:表Ticket中的关联引用了一个未映射的类:Owner
The documentation says这应该按原样运作。我忘记了什么吗?
答案 0 :(得分:-1)
当您将基类定义为抽象时,NHibernate不会为其生成任何表。因此,您无法从Ticket中引用该类。
因此,您需要将其创建为非抽象,并接受数据库中的额外表。