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();;