2010-04-10 9 views
1

Je construis un cadre où les gens seront en mesure d'enregistrer les éléments que le créé en héritant d'une classe de mine. Je vais itérer sur chaque type dans le domaine pour trouver des classes que je veux mapper à nhibernate. Chaque classe que je trouve sera une sous-classe du type hérité.FluentNhibernate mappings d'exécution dynamique

Je sais comment créer des sous-types dans FluentNhibernate, mais chaque sous-type requiert sa propre classe ClassMap. Comme je ne connaîtrai pas ces temps d'exécution, je ne peux pas le faire.

Existe-t-il un moyen d'ajouter des mappings à nhibernate fluent? Notez, je sais que c'est possible sans fluage nhibernate en utilisant la classe Cfg, mais je ne veux pas gérer le même code de deux manières différentes.

+1

J'ai projet comme vous décrivez. Quelle est votre solution? – sh1ng

Répondre

0

Il y avait un support pour cela en même temps, et l'API est toujours là, mais elle est maintenant détruite.

1

quelque chose le long des lignes

Type classToMap = GetClassToMap(); 
var subclassmap = typeof(SubClassMap<>).MakeGenericType(classToMap); 

foreach(var item in classToMap.GetPropertiesToMapSomehow()) 
{ 
    var expression = // build lambda of property 
    subclassMap.Map(expression).Column("col") ... 
} 

config.Add(subclassmap) // NHibernate.Cfg.Configuration