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

推荐订阅源

The Hacker News
The Hacker News
博客园_首页
人人都是产品经理
人人都是产品经理
博客园 - 聂微东
J
Java Code Geeks
Stack Overflow Blog
Stack Overflow Blog
Blog — PlanetScale
Blog — PlanetScale
博客园 - 三生石上(FineUI控件)
A
About on SuperTechFans
V
Visual Studio Blog
小众软件
小众软件
MyScale Blog
MyScale Blog
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
F
Full Disclosure
酷 壳 – CoolShell
酷 壳 – CoolShell
T
The Exploit Database - CXSecurity.com
C
CERT Recently Published Vulnerability Notes
T
Threat Research - Cisco Blogs
AWS News Blog
AWS News Blog
T
Tor Project blog
Jina AI
Jina AI
GbyAI
GbyAI
C
Comments on: Blog
IT之家
IT之家
Apple Machine Learning Research
Apple Machine Learning Research
A
Arctic Wolf
有赞技术团队
有赞技术团队
SecWiki News
SecWiki News
L
Lohrmann on Cybersecurity
Security Latest
Security Latest
Webroot Blog
Webroot Blog
C
Cisco Blogs
雷峰网
雷峰网
云风的 BLOG
云风的 BLOG
博客园 - 叶小钗
K
Kaspersky official blog
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
宝玉的分享
宝玉的分享
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
O
OpenAI News
H
Hacker News: Front Page
D
Darknet – Hacking Tools, Hacker News & Cyber Security
D
Docker
P
Palo Alto Networks Blog
The Register - Security
The Register - Security
B
Blog RSS Feed
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
WordPress大学
WordPress大学
阮一峰的网络日志
阮一峰的网络日志

博客园 - eric.123

人际关系结构 “80后”投资者入市须知 VS2005中通过表达式查找所有中文字符的正则表达式。 window.external的使用 三十岁时你在做什么? 首富不穿名牌不开名车郭台铭的三步人生 软件系统维护方案 软件系统维护方案 SQL语句大全 ORACLE 常用的SQL语法和数据对象 - eric.123 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>