linq中的关键字是什么?
本文关键字:是什么 关键字 linq | 更新日期: 2023-09-27 18:18:32
谁能解释一下from
在linq中是用来做什么的?在MySQL中,from
用于指定表。但是我不明白它在linq中的用法。
var artists = from a in context.Artists
where a.Name.StartsWith("A")
orderby a.Name
select a;
意思是一样的。特别是from
允许您指定数据源和范围变量。
即from a in Artists
表示在数据源Artists
之上,将序列的连续元素命名为a
。对于查询的其余部分,a
引用Artists
的元素。
上面你写的代码相当于
var artists = context.Artists
.Where(a => a.Name.StartsWith("A"))
.OrderBy(a => a.Name);
如果您在LINQ提供程序抽象SQL数据库上执行上述代码,那么它最终将被转换为相当于
的内容。select * from Artists a
where a.Name is like 'A%'
order by a.Name
在LINQ中出现的顺序略有不同的原因是为了帮助解析器和智能感知引擎。
与SQL中的操作符完全相同。查询语句只是向后写,以使智能感知和类型推断工作。当FROM位于末尾时,这些功能就不能很好地工作了。
当您使用工具构建SQL语句时,本质上是在做同样的事情。首先指定要查询的对象,然后绘制JOIN链接,然后选择感兴趣的列。一个向后的工作流,就像Linq查询理解一样。事实上,你可以认为SQL是向后的:)
所有LINQ
查询操作由三个不同的操作组成:
- 获取数据源。
- 创建查询
- 执行查询
from
子句指定数据源,where
子句应用过滤器,select
子句指定返回元素的类型。
所以,你的查询与
完全相似var artists = context.Artists
.Where(a => a.Name.StartsWith("A"))
.OrderBy(a => a.Name);