首页 > 其他 > 详细

何老师的框架哲学(二)

时间:2017-08-26 12:09:02      阅读:243      评论:0      收藏:0      [点我收藏+]

查询实体与查询对象

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

 

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

 

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数据返回到界面

 

何老师的框架哲学(二)

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

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!