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));

 

原理分析:

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

比如:

重载

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值