NHibernate学习心得二

突然杀出一个项目,令到我暂时停止学习NHibernate。只是我前两日做的笔记,没有记录全,迟点再继续补全。

 

Lazy:
 在session在open状态时,从表面上看设置了lazy=true和设置lazy=false或者没有设置是一样的。
 一旦session.close(),设置未lazy=true的集合 会报错 :failed to lazily initialize a collection of role:  NHibernateEntites.Entities.UserType.Users, no session or session was closed"
 由此猜想,设置了lazy=true的时候,当用户请求UserType的时候并不加载Users,而当用户使用到users的时候才自动载入。
 所以一旦session.close(),载入的时候就会抛exception。
 所以在脱离 session 使用实体的关联集合就需要注意。

 

property 配置:
 一直都使用 <property name ="PowerName" column ="power_name"/> 这样的语句配置,但是发局这样配置,
NHibernate会使用nvarchar(255)作为数据库字段的类型。而当我使用varchar的时候,就会发生错误。
 经过google得知在property节下可以配置一个column节,column中有一个sql-type的属性可以解决这个问题。
于是我使用以下配置:<property name ="PowerName" type="String">
   <column name ="power_name" sql-type="varchar(50)" />
   </property>

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值