2009-11-10 2 views
1

Nous utilisons deux bases de données dans notre application Web. L'un se trouve aux États-Unis et l'autre au Canada. Vous devriez voir seulement les données basées sur votre pays. Maintenant, je pense qu'il y aura un problème quand il s'agit de créer les objets SessionFactory, car les entités ont déjà été créées pour les USA. Maintenant, quand NHibernate essaie de créer l'usine pour la base de données CAN, avec les mêmes entités, je reçois l'erreur suivante:nhibernate session pour différents serveurs de base de données avec la même entité

Could not find connection string setting (set connection.connection_string or connection.connection_string_name property)

Comment puis-je résoudre ce problème?

Mise à jour: Voici la trace de la pile:

à NHibernate.Connection.ConnectionProvider.Configure (IDictionary 2 settings) at NHibernate.Connection.ConnectionProviderFactory.NewConnectionProvider(IDictionary 2 paramètres) à NHibernate.Cfg.SettingsFactory.BuildSettings (propriétés IDictionary`2) à NHibernate.Cfg.Configuration.BuildSettings() à NHibernate.Cfg.Configuration.BuildSessionFactory() à FluentNHibernate.Cfg.FluentConfiguration.BuildSessionFactory() dans d: \ Construit \ FluentNH \ src \ FluentNHibernate \ Cfg \ FluentConfiguration.cs: ligne 93

Répondre

0

Juste une idée, mais étant donné que votre DAL se connecte à deux sources de données différentes sur deux ensembles d'infrastructures différentes si vous ne tourne pas en une instance de la session NHibernate CAN et une instance de la session NHibernate pour les USA. ..et ensuite fusionner les résultats après la requête? Utiliser une session pour interroger deux sources de données désespérées ne semble pas être la bonne approche ... même si c'est physiquement possible. La séparation des préoccupations devrait s'appliquer ici, je pense.

présentation

-> couche de service | -> projectName.dataAccess.usa.EntityRepository | -> projectName.dataAccess.can.EntityRepository

Questions connexes