码迷,mamicode.com
首页 > 其他好文 > 详细

何老师的框架哲学(二)

时间:2017-08-26 12:40:33      阅读:125      评论:0      收藏:0      [点我收藏+]

标签:queryable   框架   钩子函数   ota   返回   根据   create   lis   epo   

查询实体与查询对象

查询实体上一个包含网页提交过来参数的类

 

查询对象上通过查询实体创建的一个类,这个类中包含了一些方法

 

QueryControllerBase 上控制器的基类,一个方法是

public virtual ActionResult PagerQuery( TQuery query ) {
            SetPage( query );//query是查询实体,这里把分页的参数增加到查询实体
            var result = Service.PagerQuery( query ); 参看1
            return ToDataGridResult( ConvertQueryResult( result ).ToList(), result.TotalCount,result.SEcho ); 参看2
        }

 

 

1  ApplicationServiceBase 中PagerQuery( query )

public virtual PagerList<TDto> PagerQuery( TQuery queryEntity ) {
            var query = CreateQuery( queryEntity );//添加上每个页面的参数,根据查询实体返回一个查询对象
            var queryable = Query( query );//返回IQueryable对象  这里的query就是查询对象了
            queryable = FilterQueryable( queryable );//钩子函数,方便在程序中增加过滤条件
            var pager = query.GetPager();//分页参数已经在CreateQuery中通过查询实体实例化到查询对象中,这里是从查询对象中获得分页和排序信息
            return _repository.OrderBy( queryable, pager.Order ).Pager( pager ).ToPageList( pager ).Convert( ToDto );//从数据库获得数据
        }

 

2 EasyUiControllerBase 是控制器的一个基类 QueryControllerBase继承与它,它内的一个函数

protected ActionResult ToDataGridResult<T>(IList<T> data, int totalCount = 0, string sEcho = "")
        {
            return new DataGridResult(data, GetTotalCount(data, totalCount), sEcho).GetResult();
        }

通过这个函数,把获得的List数据变成界面可识别的Json数据返回到界面

 

何老师的框架哲学(二)

标签:queryable   框架   钩子函数   ota   返回   根据   create   lis   epo   

原文地址:http://www.cnblogs.com/webocean/p/7434940.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!