1

J'utilise l'automappeur de Fluent NHibernate pour mapper le modèle de domaine suivant (via AutoMap.AssemblyOf<Ticket>()), mais il génère une exception lors de la création d'une SessionFactory.Mappage de classes de base abstraites à l'aide de Fluid 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: Une association du ticket de table fait référence à une classe unmapped: Propriétaire

The documentation says que cela devrait fonctionner en l'état. Suis-je en train d'oublier quelque chose? Lorsque vous définissez votre classe de base comme étant abstraite, NHibernate ne génère aucune table pour cette classe.

Répondre

-1

Ainsi, vous ne pouvez pas vous référer à cette classe à partir de Ticket. Par conséquent, vous devez le créer comme non abstrait et accepter la table supplémentaire dans votre base de données.