2009-03-27 8 views
0

Est-ce que quelqu'un sait s'il est possible de configurer Fluent NHibernate pour mapper automatiquement des objets en utilisant l'héritage 'Table avec classe concrète'. En examinant les mappages automatiques (que j'avais écrits dans un fichier), j'ai un certain nombre d'entités qui dérivent d'EntityBase mais j'aimerais que la colonne Id soit sur chaque table plutôt que sur une table EntityBase.Mappage de «table avec une classe concrète» à l'aide du mappage automatique de Fluent NHibernate

<class name="EntityBase" table="EntityBase" xmlns="urn:nhibernate-mapping-2.2"> 
    <id name="Id" type="Int32" column="EntityBaseID"> 
     <generator class="identity" /> 
    </id> 
    <joined-subclass name="CategoryType, ..., Version=1.0.0.0, Culture=neutral, PublicKeyToken=null"> 
     <key column="EntityBaseId" /> 
     <property name="CategoryTypeGUID"> 
     <column name="CategoryTypeGUID" /> 
     </property> 
    </joined-subclass> 
</class> 

J'ai scanné les documents Fluent mais je ne vois rien de ce qui s'y rapporte.

Merci d'avance.

Répondre

0

Avez-vous défini la convention IsBaseType dans votre automapping? Cette convention particulière définit ce qui est considéré comme simplement une classe de base dans votre code, plutôt que quelque chose à considérer comme faisant partie d'une hiérarchie d'héritage d'entité.

AutoPersistenceModel 
    /* regular config */ 
    .WithSetup(s => 
    s.IsBaseType = (type => type == typeof(EntityBase))); 
+0

Merci pour cela James. Je me demandais quelle était la distinction entre cette convention et la méthode «Où», maintenant je sais! –

Questions connexes