- 新建一个控制台项目
- 主要项目结构如下:
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"></generat