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

被折叠的 条评论
为什么被折叠?



