我正在尝试通过http://codeinsanity.com上的指南将 NCommon 和 NH 连接到多个数据库(请参阅“为多个数据库支持配置 NCommon”),它通过以下建议的流畅方法工作:
var configuration = NCommon.Configure.Using(adapter).ConfigureState<DefaultStateConfiguration>();
configuration.ConfigureData<NHConfiguration>(config => config.WithSessionFactory(() => _sessionFactories[0]).WithSessionFactory(() => _sessionFactories[1]));
这可以按预期工作,但您可以看到 sessionFactories 是硬编码的。我真正想做的是这样的:
foreach(ISessionFactory sessionFactory in _sessionFactories)
{
configuration.ConfigureData<NHConfiguration>(config => config.WithSessionFactory(() => sessionFactory));
}
但这会引发以下异常:
无法注册组件 NCommon.Data.NHibernate.NHUnitOfWorkFactory。已经有一个具有该名称的组件。您是否想修改现有组件?如果不是,请确保指定一个唯一名称。
我希望有一种正确的方法来连接 n-SessionFactories 而无需对其进行硬编码 - 但我只是没有看到解决方案。有什么建议吗?