Nhibernate的实现
一、单表的实现
1) 配置,可以放入在WebConfig中或放入单独文件中
生成ISessionFactroy,一般采用单例模式实现。
NHibernate.Cfg.Configuration cfg
=
new
NHibernate.Cfg.Configuration();
cfg.AddAssembly(Assembly.GetExecutingAssembly());
factory = cfg.BuildSessionFactory();
cfg.AddAssembly(Assembly.GetExecutingAssembly());
factory = cfg.BuildSessionFactory();
Assembly.GetExecutingAssembly():即获取当前运行的程序集
2) 实体类的hbm.xml文件中如果Class的属性 lazy = true,则实体类的Properties必须是virtual。
3) 在使用 IList注意有范型与非范型之分,在Using System.Collections,表示使用普通的IList;在Using System.Collections.Generic,表示使用范型的IList
4) 使用generate=guid的示例如下
hbm.xml文件
<
id
name
="Id"
column
="LogonId"
type
="Guid"
unsaved-value ="00000000-0000-0000-0000-000000000000" >
< generator class ="guid" />
</ id >
unsaved-value ="00000000-0000-0000-0000-000000000000" >
< generator class ="guid" />
</ id >
实体类的文件
private
Guid id;
public Guid Id
{
get { return id; }
set { id = value; }
}
public Guid Id
{
get { return id; }
set { id = value; }
}
实际调用时,无需为此列分配值,系统会自动生成。