Configuration3种常见配置:
<1> Configuration config = new Configuration();
这种配置方法将会到应用程序配置文件(App.Config,Web.Config)中查找NHibernate的配置信息,NHibernate的配置节必须符合应用程序配置文件个格式,前面的例子使用过
<2> Configuration config = new Configuration().Configure();
这种配置方法将会在应用的相同目录查找名为”hibernate.cfg.xml”的标准Hibernate配置
将App.config删除,新建hibernate.cfg.xml文件,代码如下:
<?xml version="1.0" encoding="utf-8" ?>
<hibernate-configuration xmlns="urn:nhibernate-configuration-2.0" >
<session-factory name="MySessionFactory">
<!-- properties -->
<property name="connection.provider">NHibernate.Connection.DriverConnectionProvider</property>
<property name="connection.driver_class">NHibernate.Driver.SqlClientDriver</property>
<property name="connection.connection_string">Server=.;initial catalog=NHB;User id=sa;password=1234;</property>
<property name="show_sql">false</property>
<property name="dialect">NHibernate.Dialect.MsSql2000Dialect</property>
<!-- mapping files -->
<mapping assembly="NHB" />
</session-factory>
</hibernate-configuration>
修改Sessions.cs里的代码,//之后的为注释掉的
// Configuration cfg = new Configuration();
Configuration cfg = new Configuration().Configure();
// cfg.AddAssembly(Assembly.GetExecutingAssembly());
cfg.AddXmlFile("Users.hbm.xml");
将hibernate.cfg.xml,Users.hbm.xml的属性"复制到输出目录"改为"始终复制"
<3> Configuration config = new Configuration().Configure(configFileName);
这种配置方法将查找指定的Hibernate标准配置文件,可以是绝对路径或者相对路径。
修改Sessions.cs的代码
// Configuration cfg = new Configuration();
//Configuration cfg = new Configuration().Configure();
Configuration cfg = new Configuration().Configure("hibernate.cfg.xml");
/// cfg.AddAssembly(Assembly.GetExecutingAssembly
// cfg.AddXmlFile("Users.hbm.xml");
cfg.AddClass(typeof(Users));
NUnit下测试通过,貌似比较简单