zoukankan      html  css  js  c++  java
  • CYQ.Data 数据框架 V5 的语法糖 外置开源原理解析 [类似lambda表达式]

    首先看一下CYQ.Data 经典的使用手法:

    using(MAction action=new MAction(表名))

    {

       action.Select(where).Bind(列表控件);

    }

    CYQ.Data 在很多地方是直接使用原生的sql语法的,示例如:

    1:where条件:如:action.Select("ID>1 or UserName='cyqdata'")

    每个传入的where条件,都会经过一个高强度的sql防注入函数,过滤特殊字符或函数,因此安全级别是很高的。

    2:多表查询:

    new MAction(" (select a.name,b.* from a,b) newtablename");

    有小部分人士,似乎不怎么喜欢原生的sql语法,于是V5就简单的扩展了一下,来让这小部分人士去构建自己的语法。

    比如我们需要新的语法如下:

    1:对于where条件:

    action.Select(User.ID>1 & User.UserName=="cyqdata");

    2:对于构造表视图:

    new MAction(T.Skin.LeftJoin(T.User).On(Skin.UserID==User.ID));

    原理分析:

    对于新的语法糖,没有编绎器的支持,我们只能借助于重载一些运行符号或方法来实现这些。

    比如:

    重载

  • 相关阅读:
    面向对象1 继承与接口
    简易版爬虫(豆瓣)
    调用模块与包
    正则表达式2 以及configparser模块,subprocess模块简单介绍
    正则表达式(re模块)
    sys,logging,json模块
    常用模块(time,os,random,hashlib)
    内置函数与匿名函数
    day 19 yeild的表达式 面向过程 内置函数
    mysql中写存储过程加定时任务
  • 原文地址:https://www.cnblogs.com/cyq1162/p/2073416.html
Copyright © 2011-2022 走看看