继续诉说鹊桥仙与牛郎织女的故事,有没有期待很久。
涉及两张表的查询虽不是未解之谜,但之前的方法还有大的改进,B层加判断总觉得不是那么的美好;再加上和数据库的字段名紧密相连只要有点风吹草动就能大动干戈,所以是不是有更好的解决办法呢?
两张表的查询前提是,从表有主表的主键作为外键。我们可以尝试以下方法:
/// <summary>
/// 分页查询
/// </summary>
/// <param name="pageSize">页的大小</param>
/// <param name="pageIndex">当前页</param>
/// <param name="total">总页数</param>
/// <returns>集合实体</returns>
public List<RateViewModel> PageQueryRate(int pageSize, int pageIndex, out int total)
{
//调用底层的方法进行分页查询,用从表去查询主表信息
List<RateViewModel> listvmRate = this.DictionaryDal.LoadPageItems(pageSize, pageIndex, out total, s => s.isDeleted == 0, e => e.dictionaryId, true).Select(u => new RateViewModel()
{
year = u.ResultRateSet.year,
courseName = u.ResultRateSet.courseName,
teacherName = u.ResultRateSet.teacherName,
setTime = (DateTime)u.ResultRateSet.setTime,
remarks = u.remarks.ToString()
}).ToList();
}
注意的是:用这种方法一般是在两张表没有查询顺序要求;只能从从表查询主表消息,反过来是不可行的。理解如图:
曾经觉得高大上,出来的时候不是那么的什么,思维和心态可以是助跑器也可以是绊脚石,就看看问题困难的角度,过程探索喜忧参半是成长不可少的基石。