NHibernate配置详解:Configuration与SessionFactory

需积分: 1 0 下载量 72 浏览量 更新于2024-09-11 收藏 55KB DOC 举报
"NHibernate配置详解,包括从XML文件加载配置信息和使用Configuration类的不同方法" 在NHibernate,配置是至关重要的一个环节,它定义了如何连接数据库、映射对象关系等核心设置。NHibernate提供了多种方式进行配置,以适应不同的项目需求。在本篇文章中,我们将深入探讨NHibernate的配置过程,尤其是通过`Configuration`类进行的配置。 首先,我们可以使用以下两种常见的方法来初始化`Configuration`实例: 1. `Configuration config = new Configuration();` 这种方式会自动从应用程序的配置文件(如`App.config`或`Web.config`)中读取NHibernate的配置信息。配置信息需要按照.NET应用程序配置文件的格式编写。 2. `Configuration config = new Configuration().Configure();` 这种方法会在应用的根目录下查找名为`hibernate.cfg.xml`的标准NHibernate配置文件。这个文件遵循特定的XML格式,包含`session-factory`元素以及一系列的属性,用于定义数据库连接、驱动类、连接字符串等。 例如,`hibernate.cfg.xml`文件可能包含如下内容: ```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=localhost;InitialCatalog=Hibernate;IntegratedSecurity=SSPI</property> <!-- 更多配置属性... --> </session-factory> </hibernate.cfg.xml> ``` 除了上述两种方法,还可以通过编程方式动态添加配置,例如: ```csharp Configuration config = new Configuration(); config.AddXmlFile("Person.hbm.xml"); ``` 这里,`AddXmlFile`方法用于加载特定的映射文件,如`Person.hbm.xml`,该文件定义了实体类`Person`与数据库表的映射。 一旦配置完成,接下来通常会使用`Configuration`实例创建`SessionFactory`,它是NHibernate的核心组件,负责管理数据库会话。例如: ```csharp ISessionFactory sessionFactory = config.BuildSessionFactory(); ``` `SessionFactory`是线程安全的,通常在整个应用程序生命周期中只创建一次。然后,通过`SessionFactory`可以创建`Session`实例,`Session`是与数据库交互的入口点,处理对象的持久化操作。 NHibernate的配置相当灵活,既支持从配置文件读取,也支持程序化的方式,这使得开发者可以根据项目需求定制合适的配置策略。理解并熟练掌握这些配置方法,对于高效地使用NHibernate进行数据访问至关重要。