Welcome 微信登录

首页 / 网页编程 / ASP.NET / 微型项目实践(12):查询与显示

微型项目实践(12):查询与显示2011-11-24 博客园 冬冬上一篇中,我们分析了页面中的控件和数据绑定中的扩展方法,今天我们看数据的查询和显示。其中 ,数据的查询属于业务逻辑层(Business),而显示属于UI层。

假设我们要根据以下两个条件进行查询:

日志分类(ID)

发布时间(范围)

两者为“AND”的关系,则查询可以通过通过扩展IQueryable<Blog>类实现,该功能定义在 BlogExtension类中(位于DongBlog.BusinessBlogsBlog.cs文件中),代码如下:

  1: /// <summary>  2: /// 根据日志分类取得日志  3: /// </summary>  4: /// <param name="query">日志查询</param>  5: /// <param name="blogClassID">日志分类ID</param>  6: /// <param name="createDataTimeStart">日志发表的起始时间</param>  7: /// <param name="createDataTimeEnd">日志发表的结束时间</param>  8: /// <returns>该分类下的日志</returns>  9: public static List<Blog> GetBlogsBy(this IQueryable<Blog> query,     int? blogClassID, DateTime? createDataTimeStart, DateTime? createDataTimeEnd) 10: { 11:   if (query == null) 12:     throw new ArgumentNullException("query"); 13:  14:   var q = query.AsQueryable(); 15:  16:   if (blogClassID.HasValue) 17:     q = q.Where(b => b.BlogClassID == blogClassID.Value); 18:   if (createDataTimeStart.HasValue) 19:     q = q.Where(b => b.CreateDateTime > createDataTimeStart.Value); 20:   if (createDataTimeEnd.HasValue) 21:     q = q.Where(b => b.CreateDateTime < createDataTimeEnd.Value); 22:  23:   return q 24:     .OrderByDescending(b => b.CreateDateTime) 25:     .ToList(); 26: }