一、Expression2Sql介绍

Expression2Sql是一个可以将Expression表达式树解析成Transact-SQL的项目。简单易用,几分钟即可上手使用,因为博主在设计Expression2Sql的时候就尽可能的按照Transact-SQL的语法语义风格来设计,只要调用者熟悉基本的Transact-SQL语法即可瞬间无忧开码,大大降低了学习Expression2Sql的成本,甚至零成本。对象化操作,链式编程,支持多表复杂关联查询,任意组装sql,自动生成表别名,参数化赋值,防止sql注入,支持SQLServer、MySQL、Oracle、SQLite等多数据库,生成极度美观的sql字符串(格式化),优点A,优点B,优点C,优点...还是等你来发现吧! O(∩_∩)O~

  由于insert操作基本上是纯反射,很难和表达式树挂上钩,所以就不提供insert操作的方法了。Expression2Sql目前推出的首个版本是1.0,所以功能完善程度不高,只能做一些简单的表达式树解析成sql的操作。后期博主会持续更新维护,陆陆续续的增加智能缓存、日志埋点、sql监控、sql合法性检查等,让Expression2Sql逐渐的日益完善。

Expression2Sql的设计初衷就是职责非常单一、干净清爽,纯粹就是输入表达式树,然后经过它的解析之后,便可返回Transact-SQL给调用方。所以它的使用场景主要是用于和第三方的ORM或者是基于ado.net的原生DbHelper帮助类做对接,使其能够支持对象化、表达式树的链式编程。

拉轰兮兮的YY了这么久,那么接下来博主将以图文并茂的方式来展示一下Expression2Sql的使用示例。

二、单表简单查询

三、Where条件

3.1、where like

3.2、where in

3.3、多个 where 条件组合

四、多表关联查询

4.1、join

4.2、inner join

4.3、left  join

4.4、right  join

4.5、full  join

4.6、多表复杂关联查询

五、group by

六、order by

七、函数

八、delete 删除

九、update 更新

介绍一个可以将Expression表达式树解析成Transact-SQL的项目Expression2Sql的更多相关文章

  1. 干货!表达式树解析"框架"(2)

    最新设计请移步 轻量级表达式树解析框架Faller http://www.cnblogs.com/blqw/p/Faller.html 为了过个好年,我还是赶快把这篇完成了吧 声明 本文内容需要有一定 ...

  2. 干货!表达式树解析"框架"(3)

    最新设计请移步 轻量级表达式树解析框架Faller http://www.cnblogs.com/blqw/p/Faller.html 这应该是年前最后一篇了,接下来的时间就要陪陪老婆孩子了 关于表达 ...

  3. 表达式树解析"框架"

    干货!表达式树解析"框架"(2)   为了过个好年,我还是赶快把这篇完成了吧 声明 本文内容需要有一定基础的开发人员才可轻松阅读,如果有难以理解的地方可以跟帖询问,但我也不一定能回 ...

  4. 轻量级表达式树解析框架Faller

    有话说 之前我写了3篇关于表达式树解析的文章 干货!表达式树解析"框架"(1) 干货!表达式树解析"框架"(2) 干货!表达式树解析"框架" ...

  5. 干货!表达式树解析"框架"(1)

    最新设计请移步 轻量级表达式树解析框架Faller http://www.cnblogs.com/blqw/p/Faller.html 关于我和表达式树 其实我也没有深入了解表达式树一些内在实现的原理 ...

  6. 委托、匿名委托、Lambda 表达式、Expression表达式树之刨根问底

    本篇不是对标题所述之概念的入门文章,重点在阐述它们的异同点和应用场景.各位看官,这里就不啰嗦了,直接上代码. 首先定义一个泛型委托类型,如下: public delegate T Function&l ...

  7. .net 系列:Expression表达式树、lambda、匿名委托 的使用

    首先定义一个泛型委托类型,如下: public delegate T Function<T>(T a, T b); 实现泛型委托的主体代码,并调用: public static strin ...

  8. Lambda表达式树解析(下)

    概述 前面章节,总结了Lambda树的构建,那么怎么解析Lambda表达式树那?Lambda表达式是一种委托构造而成,如果能够清晰的解析Lambda表达式树,那么就能够理解Lambda表达式要传递的正 ...

  9. .net 系列:Expression表达式树、lambda、匿名委托 的使用【转】

    https://www.cnblogs.com/nicholashjh/p/7928205.html 首先定义一个泛型委托类型,如下: public delegate T Function<T& ...

随机推荐

  1. OpenStack学习参考

    预备知识 Python 调试手段.日志:pdb 开源框架 Django 面向对象:类.继承.多态 编码规范 搭建环境 安装docker,下载openstack镜像,关于docker参考 使用fuel来 ...

  2. iOS学习路线图

    一.iOS学习路线图   二.iOS学习路线图--视频篇       阶 段 学完后目标 知识点 配套学习资源(笔记+源码+PPT) 密码 基础阶段 学习周期:24天       学习后目标:    ...

  3. js实现下滑加载更多的效果

    var stop=true;$(window).scroll(function(){ totalheight = parseFloat($(window).height()) + parseFloat ...

  4. android:descendantFocusability用法简析

    开发中很常见的一个问题,项目中的listview不仅仅是简单的文字,常常需要自己定义listview,自己的Adapter去继承BaseAdapter,在adapter中按照需求进行编写,问题就出现了 ...

  5. 数据库触发器inserted和deleted详解

    create trigger updateDeleteTime on user for update as begin   update user set UpdateTime=(getdate()) ...

  6. ANE 从入门到精通 --- 使用R* 访问资源

    在AIR4.0版本之前,ANE内无法使用R*,操作资源仅能使用getResourceID(). 对于接SDK来说尤为头疼. 不过4.0以后可以通过在打包时候指定platform.xml来直接使用R*访 ...

  7. Datatypes translation between Oracle and SQL Server

    Datatypes translation between Oracle and SQL Server part 1: character, binary strings Datatypes tran ...

  8. [liusy.api-SMJ]-MAVEN archetype 创建项目

    •选择或创建工作空间 Select a workspace –File – Switch Workspace - other

  9. Hdu 4681 2013 Multi-University Training Contest 8 String

    带跨越式的LCS,同样是在朴素的LCS上加入一种跨越一段的转移,这样我们要预处理出跨越一段给定串的转移函数. 这个题同样可以正反两边LCS做 呆马: #include <iostream> ...

  10. js 控制Div循环显示 非插件版

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...