멀티 테넌트의 각 테넌트에 대해 사용자 지정 NHibernate.Search 디렉터리를 사용할 수 있도록 S # arp 응용 프로그램에서 nhibernate를 유창하게 구성해야합니다 앱.S # arp 아키텍처 1.9 + Fluently.Configure() NHiberbante
그러나 나는 해결책을 찾기 위해 몇 시간 씩 인터넷 검색을했지만 현재는 아무 것도 찾을 수없는 것 같습니다.
감사합니다, 폴
멀티 테넌트의 각 테넌트에 대해 사용자 지정 NHibernate.Search 디렉터리를 사용할 수 있도록 S # arp 응용 프로그램에서 nhibernate를 유창하게 구성해야합니다 앱.S # arp 아키텍처 1.9 + Fluently.Configure() NHiberbante
그러나 나는 해결책을 찾기 위해 몇 시간 씩 인터넷 검색을했지만 현재는 아무 것도 찾을 수없는 것 같습니다.
감사합니다, 폴
필자가 직접 시도한 것은 아니지만 AddConfiguration은 cfgProperties 사전을 사용하며, 이는 특정 사용자에게 hibernate.search.default.indexBase 값을 전달할 수 있다고 생각합니다.
위에서 살펴본 키를 추가하면 null을 반환하므로 CfgHelper.LoadConfiguration()을 사용하려고하면 문제가 발생할 수 있습니다.
하지만 당신은 공장 키를 사용하여 각 공장에 대해 서로 다른 디렉토리를 사용하는 NHSearch를 구성 할 수 있습니다 : 당신은
private string GetIndexDirectory() {
INHSConfigCollection nhsConfigCollection = CfgHelper.LoadConfiguration();
string factoryKey = SessionFactoryAttribute.GetKeyFrom(this); // Change this with however you get the factory key for your tenants,
string property = nhsConfigCollection.GetConfiguration(factoryKey).Properties["hibernate.search.default.indexBase"];
var fi = new FileInfo(property);
return Path.Combine(AppDomain.CurrentDomain.BaseDirectory, fi.Name);
}
에 메소드 GetIndexDirectory을 변경해야 당신이
http://wiki.sharparchitecture.net/Default.aspx?Page=NHibSearch 에 대한 지침을 다음과 같은 경우
<nhs-configuration xmlns="urn:nhs-configuration-1.0">
<search-factory sessionFactoryName="YOUR_TENANT1_FACTORY_KEY">
<property name="hibernate.search.default.indexBase">~\IndexTenant1</property>
</search-factory>
<search-factory sessionFactoryName="YOUR_TENANT2_FACTORY_KEY">
<property name="hibernate.search.default.indexBase">~\Tenant2</property>
</search-factory>
</nhs-configuration>
을
NHibernateSession.AddConfiguration
작동하지 않습니다?