使用Fluent NHibernate Automapper映射抽象基类

时间:2010-09-15 19:55:36

标签: nhibernate fluent-nhibernate nhibernate-mapping automapping

我正在使用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这应该按原样运作。我忘记了什么吗?

1 个答案:

答案 0 :(得分:-1)

当您将基类定义为抽象时,NHibernate不会为其生成任何表。因此,您无法从Ticket中引用该类。

因此,您需要将其创建为非抽象,并接受数据库中的额外表。