惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

博客园 - 聂微东
GbyAI
GbyAI
G
Google Developers Blog
大猫的无限游戏
大猫的无限游戏
H
Hackread – Cybersecurity News, Data Breaches, AI and More
博客园 - 叶小钗
A
About on SuperTechFans
M
MIT News - Artificial intelligence
宝玉的分享
宝玉的分享
雷峰网
雷峰网
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
Martin Fowler
Martin Fowler
Google DeepMind News
Google DeepMind News
博客园 - Franky
B
Blog RSS Feed
Y
Y Combinator Blog
Stack Overflow Blog
Stack Overflow Blog
MongoDB | Blog
MongoDB | Blog
Last Week in AI
Last Week in AI
T
The Blog of Author Tim Ferriss
The GitHub Blog
The GitHub Blog
S
SegmentFault 最新的问题
罗磊的独立博客
Apple Machine Learning Research
Apple Machine Learning Research

博客园 - eric.123

人际关系结构 “80后”投资者入市须知 VS2005中通过表达式查找所有中文字符的正则表达式。 window.external的使用 三十岁时你在做什么? 首富不穿名牌不开名车郭台铭的三步人生 软件系统维护方案 软件系统维护方案 SQL语句大全 ORACLE 常用的SQL语法和数据对象 ADO.NET 和 ADO 的比较 对比.NET PetShop和Duwamish来探讨Ado.NET的数据库编程模式 Duwamish深入剖析-结构篇 NHibernate 入门范例 C#开源网址大全(转) 开发和使用Web用户控件(转) C#基础概念二十五问(转) Ibatis主站 我的iBatisNet入门
一齐学习,NHibernate开发范例。
eric.123 · 2007-04-13 · via 博客园 - eric.123
发贴心情 转:基于NHibernate的三层结构应用程序开发初步

本文并不是去详细的介绍如何使用NHibernate,而是通过一个简单的例子来演示基于NHibernate的三层结构应用程序开发过程。关于NHibernate的有关文档,DDL已经做了汉化,但是由于英文文档自身就不完善,所以汉化后也是不全。菩提树在一篇《NHibernate学习之路》随笔中谈到了学习NHibernate遇到的困难,也希望大家把自己在使用NHibernate中的经验和心得能够共享出来,与大家分享。另外我也是刚开始接触NHiernate,有错误之处还请大家指点。

第一步:准备数据表

在这里用一个最简单的例子,有一张关于的用户的表,有编号,姓名,密码,Email地址和最后一次的登录时间几个字段。

Create Table Users(

    LogonID varchar(20) Primary key,

    Name varchar(40),

    Password varchar(20),

    EmailAddress varchar(40) ,

    LastLogon datetime

)

第二步:创建需要被持久化的类

在.NET中创建一个NHibernateWebDemo.Model的工程,添加User实体类。

//User.cs

using System;

namespace NHibernateWebDemo.Model

{

    public class User

    {

        public User()

        {  

        }

        private string id;

        private string userName;

        private string password;

        private string emailAddress;

        private DateTime lastLogon;

        public string Id

        {

            get { return id; }

            set { id = value; }

        }

        public string UserName

        {

            get { return userName; }

            set { userName = value; }

        }

        public string Password

        {

            get { return password; }

            set { password = value; }

        }

        public string EmailAddress

        {

            get { return emailAddress; }

            set { emailAddress = value; }

        }

        public DateTime LastLogon

        {

            get { return lastLogon; }

            set { lastLogon = value; }

        }

    }

}

第三步:创建持久化映射文件

该文件的命名为User.hbm.xml,并且与User.cs放在同一个目录里。设置该文件的生成操作属性为“嵌入的资源”,这一点要切记。另外,使用编号当作主键,由用户输入,所以在映射文件中用assigned。

<?xml version="1.0" encoding="utf-8" ?>

<hibernate-mapping xmlns="urn:nhibernate-mapping-2.0">

        <class name="NHibernateWebDemo.Model.User, NHibernateWebDemo.Model" table="users">

               <id name="Id" column="LogonId" type="String" length="20">

                       <generator class="assigned" />

               </id>

               <property name="UserName" column= "Name" type="String" length="40"/>

               <property name="Password" type="String" length="20"/>

               <property name="EmailAddress" type="String" length="40"/>

               <property name="LastLogon" type="DateTime"/>

        </class>

</hibernate-mapping>