DBHelper.CurrentSession Fetch(SelectMode.Fetch,p=>p.) Get

本文介绍了一个旅行费用实体的定义与映射,包括主实体Travelexpense及子实体Travelexpensedetails的属性设置。通过Fluent API配置了数据表名、字段映射及关联关系,实现了数据的懒加载。并提供了两种查询方式,一种是通过Get直接获取指定ID的旅行费用记录,另一种是使用QueryOver进行条件筛选。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

table

 public partial class Travelexpense {
        public virtual int Id { get; set; }
        public virtual Maindoc MainDoc { get; set; }
        public virtual IList<Travelexpensedetails> Details { get; set; }
    }

 public partial class Travelexpensedetails
    {
        public virtual int Id { get; set; }
        public virtual int? PID { get; set; }
    }

map

 public partial class TravelexpenseMap : ClassMap<Travelexpense> {
        
        public TravelexpenseMap() {
			Table("Tb_TravelExpense");
			LazyLoad();
			Id(x => x.Id).GeneratedBy.Identity().Column("ID");
            References(x => x.MainDoc).Column("MainDocID").Cascade.SaveUpdate();      
            HasMany(x => x.Details).KeyColumn("PID").Cascade.SaveUpdate();         
        }
    }

获取数据时可以将lst一起获取过来

  public virtual Travelexpense GetTravelByMaindocID(int MaindocID)
        {
            using (var curSession = DBHelper.CurrentSession)
            {
                return curSession.QueryOver<Travelexpense>().Fetch(SelectMode.Fetch,p=>p.Details).Where(p => p.MainDoc.Id == MaindocID).SingleOrDefault();
            }
        }
var curSession = DBHelper.CurrentSession
//以下两种查询方式得出的结果一样
Travelexpense travel = curSession.Get<Travelexpense>(tarvelID);
Travelexpense travel = curSession.QueryOver<Travelexpense>().Where(p => p.Id == tarvelID).SingleOrDefault();;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值