在 DLinq 发布之前用什么查询数据?OQL.NET 介绍 (1)
2006-09-03 15:27
429 查看
DLinq 无疑将成为今后数据库处理的利器之一,它具有语言无关、强类型、编译检查等优点。虽然 DLinq 自出现以来受到的褒贬不一,目前也只是支持 SQL Server,但这不是本文要讨论的话题。
在 DLinq 发布之前,然道我们依旧只能用字符串拼拼凑凑,来写那些难以维护的 SQL 语句?也许有人会说,用 O/R Mapping 吧。我们应该看到 O/R Mapping 并不是包治百病的良药,在处理复杂的查询时,O/R Mapping 就不合适了,这时大多数人的选择还是基于字符串的 SQL 语句。
现在,我们可以选择另一种查询方案—— OQL.NET。
我们来看看下面的 SQL 语句:
select * from Customers c where c.City = 'London' order by c.ContactName
我们先来看看用 DLinq 如何写:
var q =
from c in Customers
where c.City == "London"
orderby c.ContactName
select c;
我们可以看到,采用 Lambda 表达式为基础的 DLinq 虽然是语言集成的,但它并不是嵌入式 SQL。DLinq 和 SQL 有着很大的差异,在写复杂的查询时更是如此,开发者需要进行一段时间学习才能很好地掌握它。
我们再来瞧瞧用 OQL.NET 如何写:
SelectQuery q = OQL
.SelectFrom ( NW.Customer )
.Where ( NW.Customer.City == "London" )
.OrderBy ( NW.Customer.ContactName );
OQL.NET 采用级联表达式的方式对 SQL 进行了高度模仿,大大降低了学习成本和入门门槛,这种好处是不言而喻的。OQL.NET 的级联表达式是上下文关联的,比如 where 只能在from 之后,having 只能在 groupby 之后等等,这样的设计除了能在 IDE 中得到上下文帮助之外,还能引导初学者写出正确的查询语句。
在 DLinq 发布之前,然道我们依旧只能用字符串拼拼凑凑,来写那些难以维护的 SQL 语句?也许有人会说,用 O/R Mapping 吧。我们应该看到 O/R Mapping 并不是包治百病的良药,在处理复杂的查询时,O/R Mapping 就不合适了,这时大多数人的选择还是基于字符串的 SQL 语句。
现在,我们可以选择另一种查询方案—— OQL.NET。
我们来看看下面的 SQL 语句:
select * from Customers c where c.City = 'London' order by c.ContactName
我们先来看看用 DLinq 如何写:
var q =
from c in Customers
where c.City == "London"
orderby c.ContactName
select c;
我们可以看到,采用 Lambda 表达式为基础的 DLinq 虽然是语言集成的,但它并不是嵌入式 SQL。DLinq 和 SQL 有着很大的差异,在写复杂的查询时更是如此,开发者需要进行一段时间学习才能很好地掌握它。
我们再来瞧瞧用 OQL.NET 如何写:
SelectQuery q = OQL
.SelectFrom ( NW.Customer )
.Where ( NW.Customer.City == "London" )
.OrderBy ( NW.Customer.ContactName );
OQL.NET 采用级联表达式的方式对 SQL 进行了高度模仿,大大降低了学习成本和入门门槛,这种好处是不言而喻的。OQL.NET 的级联表达式是上下文关联的,比如 where 只能在from 之后,having 只能在 groupby 之后等等,这样的设计除了能在 IDE 中得到上下文帮助之外,还能引导初学者写出正确的查询语句。
相关文章推荐
- ASP.NET中Linq查询数据的用法
- 查询大数据表的效率对比:Linq to SQL、Entity Framework、企业库存储过程、ADO.Net
- 查询大数据表的效率对比:Linq to SQL、Entity Framework、企业库存储过程、ADO.Net
- 使用PDF.NET数据开发框架的实体操作语言OQL构造复杂查询条件
- asp.net mvc linq to entity 查询指定列的数据以json字符串格式返回数据
- .NET ODBC与JAVA JDBC连接HIVE查询数据的性能比较
- 将从SQL数据库中查询出来的数据导出为Excel文档ASP.NET(VB)?
- ASP.NET网站权限设计实现——套用JQuery EasyUI列表显示数据、分页、查询
- 如何使用 ASP.NET、ADO.NET 和 Visual C# .NET 查询和显示 Excel 数据
- 发布NBearLite v1.0.0: 提供强类型查询语法的非ORM数据访问组件 [8/2 更新至v1.0.0.9 beta - 修复NBearLite参考手册某些操作系统打开错误的问题]
- .NET LINQ查询语法与方法语法
- ASP.NET学习笔记---- 数据查询与展示GridView
- Linq查询出结果集中重复数据
- 【linq】-实现数据的随机查询
- MongoDB .Net Driver(C#驱动) - 内嵌数组/嵌入文档的操作(增加、删除、修改、查询(Linq 分页))
- 为什么返回的数据前面有callback? ashx/json.ashx?的后面加 callback=? 起什么作用 js url?callback=xxx xxx的介绍 ajax 跨域请求时url参数添加callback=?会实现跨域问题
- 分别介绍以下数据提供者连接各种数据库的方法 (vb.net)
- 详细介绍ASP.NET页面间数据传递的使用方法
- 分别介绍以下数据提供者连接各种数据库的方法 (vb.net)
- 要烂熟于胸的代码(1)-ADO.NET数据查询