一个简单的NHibernate例子

本文介绍如何使用NHibernate框架创建用户表,并实现增删改查等基本操作。包括定义User类、设置映射文件、配置SessionFactory及Session,以及通过Session进行数据的持久化。

一、首先,在数据库中创建一个User表,包括以下字段:

LoginID String primary key,

UserName String ,

Password String,

EmailAddress String,

LastLogin DateTime

二、创建类文件:User.cs:

必须注意的是,封装字段时,必须使用virtual,不然会抛出异常

public class User
    
{
        
private String id;
        
private String userName;
        
private String password;
        
private String emailAddress;
        
private DateTime lastLogin;

        
/// <summary>
        
/// logid
        
/// </summary>

        public virtual String Id
        
{
            
get return id; }
            
set { id = value; }
        }

        
        
/// <summary>
        
/// 用户名
        
/// </summary>

        public virtual String UserName
        
{
            
get return userName; }
            
set { userName = value; }
        }

        
        
/// <summary>
        
/// 密码
        
/// </summary>

        public virtual String Password
        
{
            
get return password; }
            
set { password = value; }
        }

       
        
/// <summary>
        
/// email
        
/// </summary>

        public virtual String EmailAddress
        
{
            
get return emailAddress; }
            
set { emailAddress = value; }
        }

       
        
/// <summary>
        
/// lastLogin
        
/// </summary>

        public virtual DateTime LastLogin
        
{
            
get return lastLogin; }
            
set { lastLogin = value; }
        }


    }

 

三、接下来,当然要添加NHibernate.dll引用了

四、添加映射文件:User.hbm.xml

注意column与表中字段名的对应

<?xml version="1.0" encoding="utf-8" ?>
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2">
  
<class name="NHibernate.Examples.QuickStart.User, NHibernate.Examples.QuickStart" table="users">
    
<id name="Id" column="LoginID" type="String" length="20" unsaved-value="">
      
<generator class="assigned" />
    
</id>
    
<property name="UserName" column="Name" type="String" length="40"/>
    
<property name="Password" column="Password" type="String" length="20"/>
    
<property name="EmailAddress" column="EmailAddress" type="String" length="40"/>
    
<property name="LastLogin" column="LastLogin"  type="DateTime"/>
  
</class>
</hibernate-mapping>

五、创建一个 Configuration object,

Configuration cfg = new Configuration();
 cfg.AddAssembly(
"NHibernate.Examples.QuickStart");

六:创建一个session object,它代表一个与后台数据库的连接

 ISessionFactory factory = cfg.BuildSessionFactory()
 ISession session 
= factory.OpenSession();
  ITransaction transaction 
= session.BeginTransaction();

七:接下来,你就可以进行查询,插入等操作了,举一个插入的例子:

           User user = new User();
            user.Id 
= "13";
            user.UserName 
= "test";
            user.Password 
= "test";
            user.EmailAddress 
= "testyahoo.com.cn";
            user.LastLogin 
= DateTime.Now;
            
try
            
{
                session.Save(user);

                transaction.Commit();
            }

            
catch (Exception ee)
            
{
                transaction.Rollback();
                Console.WriteLine(ee.Message);
            }
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值