以下SQL
SELECT * FROM customers
在LINQ中转换为此
var customers = from c in customers
select c;
他们有什么好的理由为什么来自和选择被交换?
我能想到的唯一合乎逻辑的理由是intellisens?为了让intellesens得到解决,它需要知道它的查询内容(范围)?
为什么会被抄袭?
答案 0 :(得分:9)
选择是交换的,因为它表示LINQ查询语法所代表的方法调用的顺序。
这相当于
customers.Select(c=>c);
或
customers.Select();
SQL通过在继续之前处理整个语句来逃避它,但是为了得到智能感知这样的东西并弄清楚你的选择是否有效它必须是最后一步而不是第一步。
您可能还想查看FLWOR,它是一个更接近的表示,代表 for , let , where , orderby ,返回。你会注意到 for ,它等同于from,是第一个;并且 return ,相当于select,是最后一次。
SQL,这里更多的是异常。在您指定域名之前,如何知道您正在操作的内容。