- 新建一个控制台项目
- 主要项目结构如下:
Model 实体
Mapping 主要做映射表关系文件
UserManager 做业务逻辑处理
- 添加项目Nuget包Nhibernate引用
- 创建NhibernateHelper 帮助类来实例化我们ISessionFactory工厂类

其中NHibernate.Cfg.Configuration 的一个实例表示应用程序的 .NET 类型到 SQL 数据库的一整组映射。配置用于构建(不可变的)ISessionFactory。映射是从各种 XML 映射文件编译而来的。
5.添加映射文件xml及实体User类

AddAssembly中添加分为两部分xml映射配置:
a.配置映射所有实体对应的命名空间,NHibernate 将在程序集中查找以 .hbm 结尾的任何资源.xml。此方法消除了任何硬编码的文件名,并确保添加程序集中的映射文件。例如User 实体 可以对应xml文件为User.hbm.xml …注意此处.hbm结尾必须要有,
当然也可以在Hibernate.cfg.xml文件中指定文件
<session-factory>
<mapping resource="InfraStructureDemo.Mapping.User.hbm.xml" assembly="InfraStructureDemo" />
</session-factory>
User的配置映射文件可以参考如下
<?xml version="1.0" encoding="utf-8" ?>
<!-- more entity location info here -->
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2"
assembly="InfraStructureDemo"
namespace="InfraStructureDemo.Model">
<!-- more mapping info here -->
<class name="User" table="Users">
<id name="Id" column="Id" type="Int32">
<generator class="native"></generator>
</id>
<property name="UserName" column="UserName" type="string"></property>
<property name="Password" column="Password" type="string"></property>
<property name="LoginTime" column="LoginTime" type="Date"></property>
</class>
</hibernate-mapping>
其中property 中第一个name表示实体名称column对应我们数据库中表中字段名称,
Namespace 对应EntityModel的命名空间 还要指定Model程序集名称
<generator class="native"></generator> 代表主键的生成规则
b.根目录创建 HibernateMssql.cfg.xmlcfg.xml(这个主要针对数据库驱动还有链接字符串之类的数据库链接配置设置文件)
Nhibernatehelper中可以使用cfg.Configure("./HibernateMssql.cfg.xml");//解析配置文件 或者cfg..AddFile("HibernateMssql.cfg.xml"); 进行配置添加
c.创建实体类

Cfg.xml数据库配置可以参考如下代码或者在下载的Nuget包目录地址下有参考各个数据库的配置
C:\Users\\.nuget\packages\nhibernate\5.3.12\ConfigurationTemplates

具体我们以mssql为例 代码配置如下
<?xml version="1.0" encoding="utf-8"?>
<!--
This template was written to work with NHibernate.Test.
Copy the template to your NHibernate.Test project folder and rename it in hibernate.cfg.xml and change it
for your own use before compile tests in VisualStudio.
-->
<!-- This is the System.Data.dll provider for SQL Server -->
<hibernate-configuration xmlns="urn:nhibernate-configuration-2.2" >
<session-factory name="NHibernate.Test">
<property name="connection.driver_class">NHibernate.Driver.SqlClientDriver</

本文介绍了如何在C#项目中使用NHibernate,包括创建项目结构、添加Nuget包、配置映射文件、实体类、数据库连接以及主从表关系的映射。通过NHibernateHelper类实例化ISessionFactory,使用XML或FluentNHibernate进行映射配置,实现数据持久化操作。

338

被折叠的 条评论
为什么被折叠?



