1

我们在 Web 应用程序中使用两个数据库。一个在美国,一个在加拿大。您应该只看到基于您所在国家/地区的数据。现在我认为在创建 SessionFactory 对象时会出现问题,因为实体已经为美国创建。现在,当 nHibernate 尝试使用相同的实体为 CAN 数据库创建工厂时,我收到以下错误:

找不到连接字符串设置(设置 connection.connection_string 或 connection.connection_string_name 属性)

我该如何解决这个问题?

更新: 这是堆栈跟踪:

在 NHibernate.Connection.ConnectionProvider.Configure(IDictionary 2 settings) at NHibernate.Connection.ConnectionProviderFactory.NewConnectionProvider(IDictionary2 设置) 在 NHibernate.Cfg.SettingsFactory.BuildSettings(IDictionary`2 属性) 在 NHibernate.Cfg.Configuration.BuildSettings() 在 NHibernate.Cfg.Configuration.BuildSessionFactory() 在 FluentNHibernate。 Cfg.FluentConfiguration.BuildSessionFactory() 在 d:\Builds\FluentNH\src\FluentNHibernate\Cfg\FluentConfiguration.cs: 93 行

4

2 回答 2

0

这里只是一个想法,但鉴于您的 DAL 正在连接到两组不同基础设施上的两个不同数据源,如果您不启动一个用于 CAN 的 NHibernate 会话实例和一个用于美国的 NHibernate 会话实例......然后合并查询后的结果?使用一个会话来查询两个绝望的数据源听起来不像是正确的方法......即使它在物理上是可能的。我认为,关注点分离应该适用于此。

表示 -> 服务层 |-> projectName.dataAccess.usa.EntityRepository |-> projectName.dataAccess.can.EntityRepository

于 2009-11-11T19:06:40.860 回答
0

你可以试试 NHibernate.Shards。它仍在开发中,但可能对您有用。 http://nhcontrib.svn.sourceforge.net/svnroot/nhcontrib/trunk/src/NHibernate.Shards/

于 2009-11-10T20:11:51.913 回答