Отображение абстрактных базовых классов с использованием Fluent NHibernate Automapper - PullRequest
1 голос
/ 15 сентября 2010

Я использую автоматическое приложение 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 относится к несопоставленному классу: Owner

В документации сказано, что это должно работать как есть. Я что-то забыл?

1 Ответ

0 голосов
/ 28 апреля 2012

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

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

...