标题:[分享] 在 DLinq 发布之前用什么查询数据?OQL.NET 介绍 (1)
只看楼主
o945
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2006-7-20
 问题点数:0 回复次数:2 
[分享] 在 DLinq 发布之前用什么查询数据?OQL.NET 介绍 (1)

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 中得到上下文帮助之外,还能引导初学者写出正确的查询语句。

转自:http://www.cnblogs.com/kimphi

[此贴子已经被作者于2006-9-5 19:44:58编辑过]

搜索更多相关主题的帖子: DLinq NET OQL 数据 分享 
2006-09-04 21:22
finix
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2008-6-12
得分:0 
好的LINQ资料和大家分享

[url=http://www.]http://www.[/url]
2008-06-12 15:31
finix
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2008-6-12
得分:0 
错了

好的LINQ资料和大家分享

http://www.
2008-06-12 15:33



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-88004-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.046631 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved