1

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

ドキュメントによると、これはそのままで機能するはずです。私は何かを忘れていますか?

4

1 に答える 1

-1

基本クラスを抽象クラスとして定義すると、NHibernate はそのクラスのテーブルを生成しません。したがって、チケットからそのクラスを参照することはできません。

したがって、非抽象として作成し、データベースに余分なテーブルを受け入れる必要があります。

于 2012-04-27T22:15:59.987 に答える