我正在为HNibernate创建一个非常类似于here的自定义连接提供程序。在其中,它们在hibernate.cfg.xml参数中指定单独的连接字符串。但是,当我去添加这个新参数时,就像这样......
<?xml version="1.0" encoding="utf-8" ?>
<hibernate-configuration xmlns="urn:nhibernate-configuration-2.2" >
<session-factory>
<property name="connection.provider">MyNameSpace.FailoverConnectionProvider</property>
<property name="dialect">NHibernate.Dialect.MsSql2008Dialect,NHibernate</property>
<property name="connection.driver_class">NHibernate.Driver.SqlClientDriver</property>
<property name="connection.connection_string">[primary connection string]</property>
<property name="connection.failover_connection_string">[failover connection string]</property>
<property name="proxyfactory.factory_class">NHibernate.ByteCode.Castle.ProxyFactoryFactory, NHibernate.ByteCode.Castle</property>
...
</session-factory>
</hibernate-configuration>
...我对此异常消息感到满意:
InnerException {"The 'name' attribute is invalid - The value 'connection.failover_connection_string' is invalid according to its datatype 'String' - The Enumeration constraint failed."} System.Exception {System.Xml.Schema.XmlSchemaValidationException}
我的问题是:是否可以在NHibernate配置文件中添加自定义属性?如果是这样,怎么样?
谢谢!
答案 0 :(得分:3)
无法向NHibernate配置文件添加属性,因为它已经过架构验证(并且您无法更改架构)。
无论如何,除了NHibernate核心配置本身之外,还有不的地方。
其他所有内容都应位于自己的位置,无论是app.config
文件中的自定义部分,appSettings
部分中的密钥等等。