现在的位置: 首页 > 综合 > 正文

SDQ 与 DLinq 相似的地方让我惊讶

2013年09月17日 ⁄ 综合 ⁄ 共 987字 ⁄ 字号 评论关闭

SDQ 是我在 2004的时候看了Linq有感而发的作品,当时主要是为了开发一个对OPS有极强支持能力的O/RM工具。开发工具是:VS.NET 2003

我今天下载了C# 9.0 快速开发版之后,认真的找了些Linq的资料查看(以前,主要是概念性的接触,从Cw开始)。发现SDQ 3.0 版本与Linq的部分语法相当的相似。以下是两种代码:

SDQ CODE::

SQRun sq = new SQRun();
sq.From(res)
     .InnerJoin(link,).On(res.RSID 
==link.RSID)
     .InnerJoin(pkg).On(pkg.PGID 
==link.LK_OBJT_ID)
     .Where(pkg.R_PGID 
==  Package.DEFINE)
     .And(PKG.Level 
== 2)
     .Select();

LINQ CODE::

IEnumerable expr = names 
                           .Where(s 
=> s.Length == 5
                           .OrderBy(s 
=> s)
                           .Select(s 
=> s.ToUpper());

 

但是真正让我惊讶的是下面的代码:

SDQ CODE:: 

public static QCondition operator ==(QColumn col, object val)
{
    
return new QCondition(col, " = " + V1(val));
}


......

QCondition q 
= QUser.PUID == 12;

 

LINQ CODE::

Func   filter  = s => s.Length == 5;

SDQ 的条件连接,就是通过许多的 QCondition 实例组合的结果.
让我有点儿津津自喜的感觉啊.我用VS.NET 2003 实现了类型的效果,而且设计思路与先进的Linq同啊.哈哈.

在几天前,我都在考虑在DLINQ出来后,我的SDQ是不是应该要死掉了.但是在学习LINQ的过程当中,再进一步确认:是想办法让DLinq来支持我的OPS,还是让SDQ在数据库查询方法比DLinq更强.

 

 

 

 

【上篇】
【下篇】

抱歉!评论已关闭.