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;

linq中的关键字是什么?

意思是一样的。特别是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);