微型项目实践(12):查询与显示

上一篇中,我们分析了页面中的控件和数据绑定中的扩展方法,今天我们看数据的查询和显示。其中 ,数据的查询属于业务逻辑层(Business),而显示属于UI层。

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

日志分类(ID)

发布时间(范围)

两者为“AND”的关系,则查询可以通过通过扩展IQueryable<Blog>类实现,该功能定义在 BlogExtension类中(位于DongBlog.Business\Blogs\Blog.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: }

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索日志
, 查询
, query
, 分类
, 时间
查询日志
,以便于您获取更多的相关知识。

时间: 2024-10-14 20:47:37

微型项目实践(12):查询与显示的相关文章

微型项目实践-目录

微型项目实践(12):查询与显示 微型项目实践(11):控件与格式化显示 微型项目实践(10):Master & Default 微型项目实践(9):页面的数据访问策略 微型项目实践(8):数据访问的实现 微型项目实践(7):数据访问的定义 微型项目实践(6):Business层代码分析--实体类的生成策略 微型项目实践(5):Business层代码分析--实体基类 微型项目实践(4):Common层代码分析 微型项目实践(3):实体代码的生成 微型项目实践(2):用测试驱动代码生成 微型项目实

艾伟也谈项目管理,微型项目实践感悟

1. 什么是微型项目 微型项目是指绝大部分工作由一个人员负责的项目,这个核心成员负责项目的系统分析.构架.及绝大部分的编码工作.项目的持续时间一般不会超过一个月.项目的参与人员除了核心的程序员外还可能一部分辅助人员,包括第二程序员(负责一部分编码工作).美工(负责界面设计)等. 微型项目的规模一般很小,业务逻辑也比较简单,价格一般也不会超过10K.程序员通常直接和对方领导打交道.客户大多没有任何技术背景.需要程序员直接负责系统的需求分析. 2. 微型项目分析 2.1 一般流程: 微型项目的流程可

微型项目实践(11):控件与格式化显示

上一篇文章中,我们简单的分析了页面的设计,今天我们来看页面中的动态部分.Master和Default页 面中的主要控件如下表: 控件ID 描述 Calendar Asp.Net自带的日历控件,使用自带的样式,以后我们会使用该控件实现根据日期的查询. ListView_BlogClass ListView,用于显示日志分类.该控件生成的Html全部是连接,不需要响应事件,故 EnableViewState设置为false. ListView_BlogList ListView,用于显示日志.该控件

微型项目实践(4):Common层代码分析

上一篇中,我们生成了实体代码,加入了Business和Common,项目突然变得大了起来,现在我们就来 一点点分析. 我们还是从这张系统结构图出发.先来看Common这个DLL,其中所包含的类,如下图所示. 1,验证相关类(IValidatable,Validater,ValidateResult,ValidateFailException) 这四个类主要是在业务层,验证实体数据时使用,每一个实体(Entity)在保存数据时对其自身数据 进行验证,以保证绝不让非法数据保存到数据库中,这四个类就是

微型项目实践(2):用测试驱动代码生成

上一篇文章中,我们分析了系统的两个实体类,并且给出了对应的实体XML.今天我们来看看如何根据 这个XML进行代码生成. 1: <?xml version="1.0" encoding="utf-8" ?> 2: <Entities xmlns="http://it.ouc.edu.cn/EntityDescription/V2"> 3: <Entity title="日志" name="

微型项目实践(10):Master &amp;amp; Default

上一篇中,我们分析了UI层的结构和PageBase类,今天我们把注意力转移到页面中来.下面这个图是 我们系统的最终效果图: 这个当然不是我做的,我也做不出来:), 但是我想大体介绍一下页面的制作流程和一些经验技巧: 需求分析人员分析并确定需要哪些页面.有时候(大部分时候)只考虑首页,因为首页能确定系统的 风格.定下首页其他页面基本上就有着落了. 需求分析人员和客户讨论页面的风格.色调.系统的风格通常是一些形容词,比如简约.明快等.良 好的方式是准备很多图片(网页模板更好)给用户看,让他选,这样可

微型项目实践(9):页面的数据访问策略

上一篇中,我们完成了数据库的访问,今天我们来看看系统设计的最后一部分--UI层.加入了UI层 之后,系统设计会变成这个样子: 这也就是系统最终的结构图.这个图上新添加的两个项目,一个是UI,一个是WebSite.其中前者依赖 于业务逻辑和数据访问,提供统一的界面处理,而WebSite仅包含Aspx页面.需要注意的是,上图中箭头 表示依赖或调用,而这个关系是具有传递性的,比如UI依赖于Business,而Business依赖于Common,则UI 自然就依赖于Common. 将UI和WebSite

微型项目实践(6):Business层代码分析——实体类的生成策略

上一篇中,我们分析了实体类的基类Entity,这一篇中,我们就分析一下基于该类的实体类. 每一个实体类都会有两个文件组成,我们以BlogClass为例,该类包含两个文件:BlogClass.cs和 BlogClass.designer.cs,这非常类似VS自己生成的代码,更方便的是,VS还会自动把这两个文件折叠起 来,如图. 这两个文件中,BlogClass.designer.cs包含所有的生成代码:成员.属性等,而BlogClass.cs则只包 含一个类的定义,供我们填写代码使用. BlogC

微型项目实践(3):实体代码的生成

上两篇我们已经有了一个XML,并且根据这个XML生成了数据库,这次我们来看一下如何从这个XML得到 初步的实体类.还是那个XML: 1: <?xml version="1.0" encoding="utf-8" ?> 2: <Entities xmlns="http://it.ouc.edu.cn/EntityDescription/V2"> 3: <Entity title="日志" name=