1

我正在使用 Fluent NHibernate 的自动映射器来映射以下域模型(通过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 的关联引用了一个未映射的类:所有者

文档说这应该按原样工作。我是不是忘记了什么?

4

1 回答 1

-1

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

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

于 2012-04-27T22:15:59.987 回答