我不明白为什么代码A是正确的并且代码B不正确:
代码A
IEnumerable<decimal> loanQuery =
from amount in loanAmounts
where amount % 2 == 0
orderby amount
select ascending amount //this line
代码B(不正确)
IEnumerable<decimal> loanQuery =
from amount in loanAmounts
where amount % 2 == 0
select amount
orderby ascending amount
由于很多人都回答错误,我现在发布了正确的代码:
IEnumerable<decimal> loanQuery =
from amount in loanAmounts
where amount % 2 == 0
orderby amount ascending
select amount
答案 0 :(得分:9)
LINQ-Query不是SQL查询,因此有自己的语法规则。你必须遵循命令:
FROM
WHERE
ORDER BY
SELECT
GROUP BY
与您无法编写SQL语句的原因相同:
SELECT * WHERE i=2 FROM tableName
但必须写
SELECT * FROM tableName WHERE i=2
答案 1 :(得分:3)
简而言之:语法要求它。请参阅Microsoft文档here
查询表达式必须以from子句开头,并且必须以a结尾 选择或分组子句。
答案 2 :(得分:2)
From MSDN doc,您会看到关键字的正确顺序
查询表达式必须以from子句开头,并且必须以a结尾 选择或分组子句。在第一个从句子和最后一个之间 select或group子句,它可以包含一个或多个这些可选项 从句:where,orderby,join,let甚至是from子句。 您还可以使用into关键字来启用连接的结果或 group子句作为其他查询子句的来源 相同的查询表达式。