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

table

 public partial class Travelexpense {
        public virtual int Id { get; set; }
        public virtual Maindoc MainDoc { get; set; }
        public virtual IList 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 {
        
        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().Fetch(SelectMode.Fetch,p=>p.Details).Where(p => p.MainDoc.Id == MaindocID).SingleOrDefault();
            }
        }
var curSession = DBHelper.CurrentSession
//以下两种查询方式得出的结果一样
Travelexpense travel = curSession.Get(tarvelID);
Travelexpense travel = curSession.QueryOver().Where(p => p.Id == tarvelID).SingleOrDefault();;

你可能感兴趣的:(DBHelper.CurrentSession Fetch(SelectMode.Fetch,p=>p.) Get)