1

J'ai une classe de base, qui a 2 classes dérivées.Fluent nHibernate Classe abstraite (non) Problème de mappage

Chaque classe dérivée possède un fichier de mappage (ils fondent classe a non et il est résumé)

Chaque classe dérivée a un objet qui pointe sur lui-même (qui est définie dans la classe de base);

class Base 
{ 
    Base myManager; 
} 
class Derived1 : Base 
{ 

} 

Class Derived2 : Base 
{ 
} 

pour chaque classe dérivée il y a une mise en correspondance:

Map(x=>x.myManager, "ManagerID"); 

Mais Fluent ne peut pas créer SessionFactory, en tant que points x.myManager à une classe unmapped (Base)

Je ne Je veux utiliser Derived1 myManager et Derived2 myManager dans les classes dérivées, car les autres classes qui utilisent ces classes ne connaissent que les propriétés de la classe de base.

Une idée Comment résoudre cette situation?

Répondre

2

Vous devez créer un mappage pour la classe de base:

public class BaseMap : ClassMap<Base> 
{ 
    public BaseMap() 
    { 
     References(x => x.myManager, "ManagerID"); 
    } 
} 

puis cartographier les autres classes comme sous-classes:

public class Derived1Map : SubclassMap<Derived1> 
{ 
    public Derived1Map() 
    { 
     // other mapping here... 
    } 
} 
Questions connexes