一、首先,在数据库中创建一个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; }
}
}
... {
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>
/// </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 >
< 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 " );
cfg.AddAssembly( " NHibernate.Examples.QuickStart " );
六:创建一个session object,它代表一个与后台数据库的连接
ISessionFactory factory
=
cfg.BuildSessionFactory()
ISession session = factory.OpenSession();
ITransaction transaction = session.BeginTransaction();
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);
}
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);
}