IBATISNET中的lazyLoad

本文介绍如何在IBATISNET中使用lazyload特性来提高数据库访问效率,并展示了正确的配置方法及注意事项。

使用IBATISNET免不了用到lazyload特性,这样可以实现延迟加载,提高数据库访问效率。但使用lazyload的时候要小心,别忘了给需要lazyload的属性加上virtual关键字哦,不然的话无法实现延迟加载的(我发现在单步调试的时候反而可以延迟加载)。

映射文件:

    <resultMap id="ApplicationResult" class="Application">
      
<result property="Id" column="id" dbType="guid"/>
      
<result property="YearNum" column="yearnum"/>

      
<result property="Budget.XMLValue" column="budget"/>
      
<result property="StudentInfo" column='id' select="Application.SelectStudentInfo" lazyLoad="true"/>
      
<result property="TeacherInfo" column="id" select="Application.SelectTeacherInfo" lazyLoad="true"/>

    
</resultMap>

 

对应的Model

 

    [Serializable]
    
public class Application
    {
        
#region Model
        
private Guid _id = Guid.Empty;

        
private IList<StudentInfo> _students = new List<StudentInfo>(0);
        
private IList<TeacherInfo> _teachers = new List<TeacherInfo>(0);

        
public Application()
        { }

        
public Guid Id
        {
            
set { _id = value; }
            
get { return _id; }
        }

        
public virtual IList<StudentInfo> StudentInfo
        {
            
get { return _students; }
            
set { _students = value; }
        }

        
public virtual IList<TeacherInfo> TeacherInfo
        {
            
get { return _teachers; }
            
set { _teachers = value; }
        }

}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值