引用:从SQL 到 LINQ, Part 2: FROM 和 SELECT(Bill Horst)
2008-01-04 10:54
519 查看
引用:从SQL 到 LINQ, Part 2: FROM 和 SELECT(Bill Horst)
[原文作者]: Bill Horst[原文链接]: Converting SQL to LINQ, Part 2: FROM and SELECT (Bill Horst)
在看这篇文章之前,我假定你已经读过了从SQL到LINQ,Part 1:基础。
为了让代码示例更清晰,我修改了下列名字:
· Customers -> CustomerTable
· Orders -> OrderTable
· cust -> Contact
· CustomerName -> ContactName
· ID -> ContactID
欢迎你们的任何反馈和建议,你们的意见可以使以后的文章更清晰更有用。
好,现在开始讨论具体的子句(clauses),我们将从最基础的FROM和SELECT开始。
FROM
SQL的SELECT语句由SELECT子句开始,并且紧跟着一个FROM子句。而VB查询表达式则由From子句(或者Aggregate子句,我们稍后讨论)开始。一个基本SQL的FROM子句指定了一个要操作的表,一个LINQ的From子句指定了一个我们要操作的对象(CustomerTable)。这个对象可以表示“已在内存中的”(“In-Memory”)数据:比如一个SQL表,或者XML信息。因为使用这样的数据比较简单,我的例子也采用了”In-Memory”的数据。除了这个数据对象,VB的From子句还包含了一个指定当前“行”(Contact)别名的标识符。
如果要选择所有的列,在SQL中我们需要使用”*”,而在VB中,我们不需要附加任何东西,From子句默认返回所有的内容。
SQL |
SELECT * FROM CustomerTable |
VB |
From Contact In CustomerTable |
SQL允许你在FROM子句中指定一个表的别名,LINQ同样允许我们这样做。
SQL |
SELECT Contact.CustomerID, Contact.Phone FROM CustomerTable Contact |
VB |
From Contact In CustomerTable Select Contact.CustomerID, Contact.Phone |
SQL的SELECT语句由一个包含要select的内容的列表开始(Name, CustomerID)。 类似的,LINQ也允许你指定要select的内容,并将结果包装成一个匿名类型(anonymous type)返回。你指定的内容并不一定要是From子句指定对象的一部分,你可以指定任意合法的VB表达式(比如3+4)。如果成员的名字不能够被推断,你必须为其指定一个别名(见下面的“SELECT里的别名”)。
SQL |
SELECT Name, CustomerID FROM CustomerTable |
VB |
From Contact In CustomerTable Select Contact.Name, Contact.CustomerID |
SQL允许SELCT子句的成员有别名(ContactName, ContactID),我们可以在查询语句的其它子句中使用这些别名。LINQ也允许别名,并且你可以在所有使用这个查询结果的代码中使用它们。
SQL |
SELECT Name ContactName, CustomerID ContactID FROM CustomerTable |
VB |
From Contact In CustomerTable Select ContactName = Contact.Name, ContactID = Contact.CustomerID |
- Bill Horst, VB IDE Test
相关文章推荐
- 引用:从SQL到LINQ, Part 3: DISTINCT, WHERE, ORDER BY and Operators (Bill Horst)
- 引用:从SQL 到 LINQ, Part 1: 基础(Bill Horst)
- 引用:从SQL 到 LINQ, Part 4: 函数 (Bill Horst)
- 在.NET 3.5 平台上使用LINQ to SQL创建三层/多层Web应用系统 (Part 2) (引用)
- 从 SQL 到 LINQ: 合并, TOP, 子查询 (Bill Horst)
- pl/sql developer快速输入select * from
- LINQ体验(5)——LINQ to SQL语句之Select/Distinct和Count/Sum/Min/Max/Avg
- LINQ体验(5)--LINQ to SQL语句之Select/Distinct和Count/Sum/Min/Max/Avg
- LINQ体验(5)——LINQ to SQL语句之Select/Distinct和Count/Sum/Min/Max/Avg
- SQLZOO:SELECT from WORLD Tutorial/zh
- 关于Sql关键字SELECT FROM GROUP ORDER 等的执行顺序问题的解释
- select 1 from ... sql语句中的1代表的含义说明
- select 1 from ... sql语句中的1代表什么意思?
- SQL查询语句中select from where group by having order by的执行顺序
- sql:select exclude columns from TABLENAME
- Issue when try to get select count using Linq to SQL
- 为何Linq以from开头而不以select 开头
- SQL 中 select into from 和 insert into select 的区别
- SQL 指令: SELECT "栏位名" FROM "表格名"
- PL/SQL如何快速打出select * from 记住登陆密码