一、开发环境

数据库:SQLServer2008

编译器:VS2010

.Net版本:.Net Framework 4.0

二、涉及第三方程序集

NHibernate.dll:版本3.2

Iesi.Collections.dll

三、开发过程

1.项目结构

2.添加Product.cs

namespace NHLearn.Domain
{
public class Product
{
public int Id { get; set; }
public String Name { get; set; }
public decimal UnitPrice { get; set; }
}
}

3.添加Product.hbm.xml,属性为嵌入的资源

<?xml version="1.0" encoding="utf-8" ?>
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2" default-lazy="false">
<class name="NHLearn.Domain.Product,NHLearn.Domain" table="T_Product">
<id name="Id" column="Id" type="int">
<generator class="native" />
</id>
<property name="Name" column="Name" />
<property name="UnitPrice" column="UnitPrice" />
</class>
</hibernate-mapping>

4.配置NHibernate

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<configSections>
<section name="hibernate-configuration" type="NHibernate.Cfg.ConfigurationSectionHandler,NHibernate" requirePermission="false"/>
</configSections> <hibernate-configuration xmlns="urn:nhibernate-configuration-2.2" >
<session-factory>
<property name="connection.provider">NHibernate.Connection.DriverConnectionProvider, NHibernate</property>
<property name="connection.driver_class">NHibernate.Driver.SqlClientDriver</property> <property name="connection.connection_string">Server=(local);initial catalog=NHLearn_DB;uid=sa;pwd=woaini</property>
<property name="show_sql">true</property>
<property name="dialect">NHibernate.Dialect.MsSql2008Dialect</property>
</session-factory>
</hibernate-configuration> </configuration>

5.增删改成

5.0控制台中代码

namespace NHLearn.UI
{
class Program
{
private static ISession session = null;
private static ISessionFactory factory = null;
private static ITransaction trans = null;
static void Main(string[] args)
{
#region 1.0初始化session工厂
Configuration config = new Configuration().AddAssembly("NHLearn.Domain");
factory = config.BuildSessionFactory();
session = factory.OpenSession();
#endregion //Add();
//Query();
//Modify();
//Delete(); Console.ReadKey();
} }
}

5.1添加方法

public static void Add()
{
Product model = new Product()
{
Name = "Apple",
UnitPrice = 2.6m
};
session.Save(model);
}

5.2查询方法

public static void Query()
{
Product model = session.Get(typeof(Product), ) as Product;
Console.WriteLine(model.Name);
}

5.3修复方法

public static void Modify()
{
Product model = session.Get(typeof(Product), ) as Product;
model.Name = "Orange";
session.Update(model);
Console.WriteLine(model.Name);
}

5.4删除方法

public static void Delete()
{
trans = session.BeginTransaction();
try
{
Product model = session.Get(typeof(Product), ) as Product;
session.Delete(model);
trans.Commit();
Console.WriteLine("删除成功");
}
catch (Exception ex)
{
trans.Rollback();
Console.WriteLine(ex.Message);
}
}

四、其他说明

增删改都是可以加事务的

NHibernate3.2学习笔记的更多相关文章

  1. NHibernate3.2学习笔记-几种查询方式

    一.开发环境 数据库:SQLServer2008 编译器:VS2010 .Net版本:.Net Framework 4.0 二.开发过程 1.项目结构 承接上一篇 2.执行sql语句 (1)基本语法 ...

  2. js学习笔记:webpack基础入门(一)

    之前听说过webpack,今天想正式的接触一下,先跟着webpack的官方用户指南走: 在这里有: 如何安装webpack 如何使用webpack 如何使用loader 如何使用webpack的开发者 ...

  3. PHP-自定义模板-学习笔记

    1.  开始 这几天,看了李炎恢老师的<PHP第二季度视频>中的“章节7:创建TPL自定义模板”,做一个学习笔记,通过绘制架构图.UML类图和思维导图,来对加深理解. 2.  整体架构图 ...

  4. PHP-会员登录与注册例子解析-学习笔记

    1.开始 最近开始学习李炎恢老师的<PHP第二季度视频>中的“章节5:使用OOP注册会员”,做一个学习笔记,通过绘制基本页面流程和UML类图,来对加深理解. 2.基本页面流程 3.通过UM ...

  5. 2014年暑假c#学习笔记目录

    2014年暑假c#学习笔记 一.C#编程基础 1. c#编程基础之枚举 2. c#编程基础之函数可变参数 3. c#编程基础之字符串基础 4. c#编程基础之字符串函数 5.c#编程基础之ref.ou ...

  6. JAVA GUI编程学习笔记目录

    2014年暑假JAVA GUI编程学习笔记目录 1.JAVA之GUI编程概述 2.JAVA之GUI编程布局 3.JAVA之GUI编程Frame窗口 4.JAVA之GUI编程事件监听机制 5.JAVA之 ...

  7. seaJs学习笔记2 – seaJs组建库的使用

    原文地址:seaJs学习笔记2 – seaJs组建库的使用 我觉得学习新东西并不是会使用它就够了的,会使用仅仅代表你看懂了,理解了,二不代表你深入了,彻悟了它的精髓. 所以不断的学习将是源源不断. 最 ...

  8. CSS学习笔记

    CSS学习笔记 2016年12月15日整理 CSS基础 Chapter1 在console输入escape("宋体") ENTER 就会出现unicode编码 显示"%u ...

  9. HTML学习笔记

    HTML学习笔记 2016年12月15日整理 Chapter1 URL(scheme://host.domain:port/path/filename) scheme: 定义因特网服务的类型,常见的为 ...

随机推荐

  1. TCP/IP学习笔记(3)----IP,ARP,RARP协议

    把这三个协议放到一起学习是因为这三个协议处于同一层(网络层协议),ARP协议用来找到目标主机的Ethernet网卡Mac地址,IP则承载要发送的消息.数据链路层可以从ARP得到数据的传送信息,而从IP ...

  2. hdfs是什么?

    参考:https://www.cnblogs.com/shijiaoyun/p/5778025.html hadoop分布式文件系统 1.hdfs是一个分布式文件系统,简单理解就是多台机器组成的一个文 ...

  3. DTRACE简介(2)

    By samwan on 三月 21, 2007 通过上一次的介绍,相信大家对DTRACE已经有了一个初步的认识.上一次结束时专门留了一个例子,可能大家第一次看有很多不明白的地方,没有关系,随着我们对 ...

  4. 基于TensorFlow的图片识别服务

    1.使用TensorFlow Retrain进行图片分类训练 https://www.tensorflow.org/versions/master/how_tos/image_retraining/i ...

  5. linux 虚拟网卡

    linux中可以通过一个物理网卡,模拟出多个虚拟网卡,并在网卡中配置ip. 下面做一个实验. 实验描述: 我们有server A (ip 10.79.148.205),server B (10.79. ...

  6. Android 实现形态各异的双向側滑菜单 自己定义控件来袭

    转载请标明出处:http://blog.csdn.net/lmj623565791/article/details/39670935.本文出自:[张鸿洋的博客] 1.概述 关于自己定义控件側滑已经写了 ...

  7. CNN卷积神经网络的改进(15年最新paper)

    回归正题,今天要跟大家分享的是一些 Convolutional Neural Networks(CNN)的工作. 大家都知道,CNN 最早提出时,是以一定的人眼生理结构为基础,然后逐渐定下来了一些经典 ...

  8. FineUI之使用SQL脚本从数据库表中生成对应的输入控件

    在WEB开发时.常常须要根据数据库表中的字段建立对应的输入控件,来获取输入的数据.每次都须要按字段来敲,显然太低效.并且easy出错.这里提供一个SQL脚本生成对应输入控件的方法. USE DBDem ...

  9. TypeError: db.addUser is not a function : @(shell):1:1 ——mongoDB创建新用户名密码的方法

    不多说,旧版本使用 db.addUser("root","root") 新版本使用这句会出现这个错误提示 TypeError: db.addUser is no ...

  10. Wordpress3.9开启多网站配置配置nginx进行局域网測试.

    由于须要帮staff迁移一些数据, 所以想到了使用wordpress的多网站. 这个功能在wordpress3.0后就有了. 软件系统等信息:  OS: linux debian wheezy php ...