내가로부터 유창함 자 NHibernate를 사용하고 있습니다 : https://github.com/jagregory/fluent-nhibernateNHibernate에 유창함 - 여러 데이터베이스 구성
다른 데이터베이스 (다른 연결 문자열)
builder.Register(c =>
Fluently.Configure()
.Database(DatabaseConfiguration) // <-- Connection string 1
.Mappings(AutoMapping.Configurations)
.ExposeConfiguration(cfg => cfg.SetProperty("connection.isolation", "ReadCommitted"))
.ExposeConfiguration(cfg => cfg.SetProperty(Environment.CommandTimeout, c.Resolve<IConfig>().SqlCommandTimeoutSeconds.ToString()))
.BuildConfiguration())
.SingleInstance();
builder.Register(c =>
Fluently.Configure()
.Database(ReportingDatabaseConfiguration) // <-- Connection string 2
.Mappings(AutoMapping.Configurations)
.ExposeConfiguration(cfg => cfg.SetProperty("connection.isolation", "ReadCommitted"))
.ExposeConfiguration(cfg => cfg.SetProperty(Environment.CommandTimeout, c.Resolve<IConfig>().SqlCommandTimeoutSeconds.ToString()))
.BuildConfiguration())
.SingleInstance();
builder.Register(c =>
c.Resolve<Configuration>()
.BuildSessionFactory())
.SingleInstance();
이 구성은 Autofac에 대해 여러 구성을 할 수 있습니다.
현재 동작이 나중에 발생하면 첫 번째 구성이 무시됩니다.
예상되는 결과는 ISession이 쿼리 할 엔터티에 따라 사용할 데이터베이스를 알 수 있어야합니다.
이것이 가능합니까?
참고 : http://devstoolbox.altervista.org/multiple-connections-using-nhibernate/ 에 언급 된 솔루션을 시도했지만 저를 위해 작동하지 않습니다.
을 반환하는 NH-연결 클래스를 등록하고이 나에게 의미가 않습니다. 각 repo 클래스가 아닌 Autofac에서 세션 초기화를 해결하고 싶습니다. 도움을 주셔서 감사합니다. – Danielyap
들려요. BaseRepBb1 및 BaseRepoDb2를 사용하여 언제든지 설정을 숨길 수 있습니다. –