2009-01-29 38 views
3

我尝试使用NHibernate.Search,我从树干构建并与NHibernate 2.0.1一起使用。当我加入一些NHibernate.Search性能配置成configuaration文件:如何添加NHibernate配置文件来使用NHibernate.Search?

<property name="hibernate.search.default.directory_provider">NHibernate.Search.Storage.RAMDirectoryProvider, NHibernate.Search</property> 
<property name="hibernate.search.default.indexBase">~\index\</property> 

我得到一个无效System.Xml.Schema.XmlSchemaException:枚举约束失败。当我使用:

var configuration = new Configuration().Configure(); 

那么我该如何解决这个问题?

回答

3

确保您定义的NHibernate.Search属性包含在nhs-configuration块中,而不是在标准NHibernate配置块中。 您的web.config应该如下所示:

<section name="hibernate-configuration" type="NHibernate.Cfg.ConfigurationSectionHandler, NHibernate" /> 
<section name="nhs-configuration" type="NHibernate.Search.Cfg.ConfigurationSectionHandler, NHibernate.Search" /> 

<hibernate-configuration xmlns="urn:nhibernate-configuration-2.2"> 
    <!-- nhibernate configuration block --> 
</hibernate-configuration> 

<nhs-configuration xmlns='urn:nhs-configuration-1.0'> 
    <search-factory> 
     <property name='hibernate.search.default.directory_provider'>NHibernate.Search.Store.FSDirectoryProvider, NHibernate.Search</property> 

     <property name='hibernate.search.default.indexBase'>...</property> 
    </search-factory> 
</nhs-configuration>