我的GraphQlSql设计 动态执行sql
2021/8/2 19:07:00
本文主要是介绍我的GraphQlSql设计 动态执行sql,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
/// <summary> /// 动态sql查询类 可以为 select 1 from user left join role on user.id=role.userid where user.id>0 and role.id=user.roleid an roleid in (1,2,3,4) /// 不支持子查询 slect 1 from user where id ( select roleid from role) 也不支持on多条件 如 on a.id=b.id and a.name=b.name /// </summary> public class GraphQlSql { /// <summary> /// 主表 /// </summary> public string MainTableName { get; set; } /// <summary> /// 主查询条件 /// </summary> List<WhereCondition> Wheres { get; set; } /// <summary> /// 表关联 /// </summary> List<TableRef> TableRefs { get; set; } public List<Fileds> SelectFields { get; set; } /// <summary> /// 分页索引 1开始 默认1 /// </summary> public int PageIndex { get; set; } /// <summary> /// 分页大小 默认10 /// </summary> public int PageSize { get; set; } } /// <summary> /// 表关联类 /// </summary> public class TableRef { /// <summary> /// 连接方式 lefe join right join /// </summary> public string LinkType { get; set; } /// <summary> /// 连接的表名 /// </summary> public string LinkTableName { get; set; } /// <summary> /// 表关联on条件集合 /// </summary> public List<OnCondition> OnConditions { get; set; } } /// <summary> /// 表关联on条件集合 /// </summary> public class OnCondition { /// <summary> /// 关联的左表名 /// </summary> public string LeftTableName { get; set; } /// <summary> /// 关联的左表字段 /// </summary> public string LeftTableField { get; set; } /// <summary> /// 关联的右表名 /// </summary> public string RightTableName { get; set; } /// <summary> /// 关联的右表字段 /// </summary> public string RightTableField { get; set; } } /// <summary> /// where条件类 /// </summary> public class WhereCondition { /// <summary> /// 逻辑符号 如 and or /// </summary> public string LogicSymbol { get; set; } /// <summary> /// 关联的左表名 如果是字段间的比较,如 user.id=role.userid 则此值为user /// </summary> public string LeftTableName { get; set; } /// <summary> /// 关联的左表字段 如果是字段间的比较,如 user.id=role.userid 则此值为id /// </summary> public string LeftTableField { get; set; } /// <summary> /// 条件符号 如> = < /// </summary> public string ConditionSymbol { get; set; } /// <summary> /// 关联的右表名 如果是字段间的比较,如 user.id=role.userid 则此值为role /// </summary> public string RightTableName { get; set; } /// <summary> /// 关联的右表字段 如果是字段间的比较,如 user.id=role.userid 则此值为userid /// </summary> public string RightTableField { get; set; } /// <summary> /// 条件比较的值。如果不是字段的比较 而是值几个比较 用这个。 比如 id in (1,23,4) 则 此值为1,23,4 /// </summary> public string ConditionValue { get; set; } } /// <summary> /// 要返回的字段 暂时不支持聚合函数 /// </summary> public class Fileds { /// <summary> ///表名 /// </summary> public string TableName { get; set; } /// <summary> /// 字段名集合 /// </summary> public List<string> Fields { get; set; } }
这篇关于我的GraphQlSql设计 动态执行sql的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-28MQ底层原理资料详解:新手入门教程
- 2024-11-28MQ项目开发资料详解:新手入门教程
- 2024-11-28MQ项目开发资料详解:入门与初级用户指南
- 2024-11-28MQ消息队列资料入门教程
- 2024-11-28MQ消息队列资料:新手入门详解
- 2024-11-28MQ消息中间件资料详解与应用教程
- 2024-11-28MQ消息中间件资料入门教程
- 2024-11-28MQ源码资料详解与入门教程
- 2024-11-28MQ源码资料入门教程
- 2024-11-28RocketMQ底层原理资料详解