1

Я использую автопарк Fluent NHibernate для отображения следующей модели домена (через AutoMap.AssemblyOf<Ticket>()), но это создает исключение при создании SessionFactory.Сопоставление абстрактных базовых классов с использованием Fluent NHibernate Automapper

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: объединение из таблицы Билет относится к классу неподключенному: Владелец

The documentation says, что это должно работать как есть. Я что-то забыл?

ответ

-1

Когда вы определяете свой базовый класс как абстрактный, NHibernate не создает для него никакой таблицы. Таким образом, вы не можете ссылаться на этот класс из Ticket.

Таким образом, вам необходимо создать его как не абстрактный и принять дополнительную таблицу в базе данных.

Смежные вопросы