NHibernate基础学习时遇到的问题
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; }
}
实际调用时,无需为此列分配值,系统会自动生成。