2010-08-03 2 views
6

Est-il possible de créer une convention simple pour modifier le mode de polymorphisme d'une classe, s'il existe une sous-classe jointe?fluent nhibernate convention: paramétrer le mode polymorphisme

Faire ceci:

public class EntityMap : ClassMap<EntityBase> 
{ 
    public EntityMap() 
    { 
     Polymorphism.Explicit(); 
    } 
} 

mais à l'intérieur d'une convention. L'utilisation IClassConvention ne fonctionne pas, comme la propriété Polymorphisme est en lecture seule:

public class TestConvention : IClassConvention 
{ 
    public void Apply(IClassInstance instance) 
    { 
     // read only property ! 
     instance.Polymorphism = Polymorphism.Explicit; 
    } 
} 

Répondre

2

Essayez

instance.Polymorphism.Explicit(); 
+0

ne fonctionne pas sur FluentNHibernate 1.2.0.712 – mathieu

+0

Je crois que cela dépend de la façon dont vous associez votre datamodel. Le polymorphisme AFAIK ne fonctionne pas avec 'ClassMap ' (joint-subclass). – Siewers