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 = '
我们先来看看用 DLinq 如何写:
var q =
from c in Customers
where c.City == "
orderby c.ContactName
select c;
我们可以看到,采用 Lambda 表达式为基础的 DLinq 虽然是语言集成的,但它并不是嵌入式 SQL。DLinq 和 SQL 有着很大的差异,在写复杂的查询时更是如此,开发者需要进行一段时间学习才能很好地掌握它。
我们再来瞧瞧用 OQL.NET 如何写:
SelectQuery q = OQL
.SelectFrom ( NW.Customer )
.Where ( NW.Customer.City == "
.OrderBy ( NW.Customer.ContactName );