博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
企业应用:应用层查询接口设计
阅读量:6315 次
发布时间:2019-06-22

本文共 1838 字,大约阅读时间需要 6 分钟。

需求

显示的列

Columns。

查询面板的查询参数

SearchArguments。

动态查询(允许用户自定义各种查询)

DynamicFilterGroup。

排序

Sorters。

分页信息

Page。

ItemsPerPage。

示例代码

1 using System; 2 using System.Collections.Generic; 3 using System.Linq; 4 using System.Text; 5 using System.Threading.Tasks; 6  7 using Happy.Query; 8 using Happy.Query.Filters; 9 10 namespace Happy.Application.Query11 {12     /// 13     /// 查询请求。14     /// 15     public sealed class QueryRequest16     {17         /// 18         /// 显式的列。19         /// 20         public List
Columns { get; set; }21 22 ///
23 /// 查询参数。24 /// 25 public SearchArgument[] Arguments { get; set; }26 27 ///
28 /// 高级查询。29 /// 30 public DynamicFilterGroup Group { get; set; }31 32 ///
33 /// 排序器。34 /// 35 public Sorter[] Sorters { get; set; }36 37 ///
38 /// 页码。39 /// 40 public long Page { get; set; }41 42 ///
43 /// 每页显式的记录数。44 /// 45 public long ItemsPerPage { get; set; }46 47 internal QueryArgument ToQueryArgument(FilterDefinition filterDefinition)48 {49 var queryArgument = new QueryArgument();50 queryArgument.Columns = this.Columns;51 queryArgument.OrderClause = this.Sorters.ToOrderClause();52 53 var whereClauses = new List
{ this.Group.ToWhereClause() };54 if (filterDefinition != null)55 {56 whereClauses.Add(filterDefinition.BuildWhereClause(this.Arguments.ToArguments()));57 }58 queryArgument.WhereClauses = whereClauses;59 60 return queryArgument;61 }62 }63 }

备注

因为这些参数都是由客户端传递而来的,是不能信任的,而且所有的查询条件也不能完全依赖客户端,一些查询逻辑一定要由服务器生成,如:数据权限、业务逻辑。

 

转载地址:http://bixxa.baihongyu.com/

你可能感兴趣的文章
数据库性能测试
查看>>
如何从开发环境直连线上(IPTables)
查看>>
教你分分钟学会用python爬虫框架Scrapy爬取心目中的女神
查看>>
蚂蚁聚宝虫洞,数据传输的桥梁
查看>>
Esper epl语句实验
查看>>
Android动画深入原理分析
查看>>
Powerdesigner15 逆向工程
查看>>
mysql常用基础操作语法(二)~~对表的增删改操作【命令行模式】
查看>>
MySQL 5.5升级5.6 单实例操作
查看>>
TableStore: 使用Datax将实例A的数据迁移到实例B中
查看>>
CSS之绝对定位那些事
查看>>
java 生成sql语句
查看>>
给飞驰的法拉利换引擎 - 谈边做业务边做架构重构(4)
查看>>
逆向设计原则:内容服从于形式
查看>>
css学习
查看>>
php接收邮件类
查看>>
设计工具:必不可少,也无关紧要
查看>>
Swift学习笔记(2)网络数据交换格式(XML,JSON)解析 [iOS实战 入门与提高卷]...
查看>>
magento helper
查看>>
网页设计的12种颜色
查看>>