Dans mon application, j'ai besoin de parler à plusieurs bases de données. Je gère cela dans NHibernate en créant une SessionFactory par base de données (je suppose que c'est la bonne chose à faire). J'ai donc deux ensembles de modèles (un par base de données), et deux ensembles de mappings Fluent NHibernate ClassMap<>
. Les deux sont dans le même projet (séparés par un espace de nom) et j'aimerais le garder comme ça.Comment ajouter des mappages par espace de noms dans Fluent NHibernate
Le problème survient lors de la création de SessionFactory. Pour autant que je peux voir, Fluent NHibernate a essentiellement deux méthodes pour ajouter des mappings:
.Mappings(m => m.FluentMappings.AddFromAssemblyOf<UserClassMap>())
.Mappings(m => m.FluentMappings.Add<UserClassMap>()
Si j'utilise la première surcharge, puis mes usines de session obtenir toutes les correspondances pour les deux bases de données. Si j'utilise la seconde, je dois spécifier chaque ClassMap individuel. Je voudrais quelque chose comme FluentMappings.AddFromNamespace()
. Y a-t-il un moyen de faire cela?
+1 J'ai découvert quelque chose de similaire, mais cette approche est plus générale. –
Cela ne mappe pas SubClassMaps, car ils ne sont pas assignables à partir de IMappingProvider. http: // stackoverflow.com/a/6207141/206297 a une liste étendue de MappingProviders qui devrait être vérifiée. – ngm