C# linq中的关键字是什么?

C# linq中的关键字是什么?,c#,.net,linq,C#,.net,Linq,有人能解释一下linq中的用于什么吗?在MySQL中,中的用于指定表。但我不明白它在linq中的用法 var artists = from a in context.Artists where a.Name.StartsWith("A") orderby a.Name select a; 它的意思基本上是一样的。特别允许您指定数据源和范围变量 也就是说,艺术家中的a意味着在数据源艺术家上

有人能解释一下linq中的
用于什么吗?在MySQL中,
中的
用于指定表。但我不明白它在linq中的用法

   var artists = from a in context.Artists
                 where a.Name.StartsWith("A")
                 orderby a.Name
                 select a;

它的意思基本上是一样的。特别允许您指定数据源和范围变量

也就是说,艺术家中的a
意味着在数据源
艺术家
上,命名序列的连续元素
a
。对于查询的其余部分,
a
引用了
Artists
的元素

您编写的上述代码与

var artists = context.Artists
                     .Where(a => a.Name.StartsWith("A"))
                     .OrderBy(a => a.Name);
select * from Artists a
where a.Name is like 'A%'
order by a.Name
如果在LINQ提供程序抽象SQL数据库上执行上述操作,它最终将被转换为与

var artists = context.Artists
                     .Where(a => a.Name.StartsWith("A"))
                     .OrderBy(a => a.Name);
select * from Artists a
where a.Name is like 'A%'
order by a.Name

它在LINQ中的顺序稍有不同的原因是为了帮助解析器和IntelliSense引擎

基本上意思是一样的。特别允许您指定数据源和范围变量

也就是说,艺术家中的a
意味着在数据源
艺术家
上,命名序列的连续元素
a
。对于查询的其余部分,
a
引用了
Artists
的元素

您编写的上述代码与

var artists = context.Artists
                     .Where(a => a.Name.StartsWith("A"))
                     .OrderBy(a => a.Name);
select * from Artists a
where a.Name is like 'A%'
order by a.Name
如果在LINQ提供程序抽象SQL数据库上执行上述操作,它最终将被转换为与

var artists = context.Artists
                     .Where(a => a.Name.StartsWith("A"))
                     .OrderBy(a => a.Name);
select * from Artists a
where a.Name is like 'A%'
order by a.Name

它在LINQ中的顺序稍有不同的原因是为了帮助解析器和IntelliSense引擎

它与SQL中的运算符完全相同。查询语句只是向后写,以使IntelliSense和类型推断工作正常。当FROM位于末尾时,这些功能无法正常工作


当您使用工具构建SQL语句时,基本上也在做同样的事情。首先指定要查询的内容,然后绘制连接链接,然后选择感兴趣的列。一个向后的工作流,就像Linq查询理解一样。事实上,您可能会认为SQL是向后的:)

它与SQL中的运算符完全相同。查询语句只是向后写,以使IntelliSense和类型推断工作正常。当FROM位于末尾时,这些功能无法正常工作


当您使用工具构建SQL语句时,基本上也在做同样的事情。首先指定要查询的内容,然后绘制连接链接,然后选择感兴趣的列。一个向后的工作流,就像Linq查询理解一样。事实上,您可以认为SQL是向后的:)

所有
LINQ
查询操作都由三个不同的操作组成:

  • 获取数据源
  • 创建查询
  • 执行查询
from
子句指定数据源,
where
子句应用过滤器,
select
子句指定返回元素的类型

因此,您的查询与

var artists = context.Artists
                     .Where(a => a.Name.StartsWith("A"))
                     .OrderBy(a => a.Name);

所有
LINQ
查询操作都由三个不同的操作组成:

  • 获取数据源
  • 创建查询
  • 执行查询
from
子句指定数据源,
where
子句应用过滤器,
select
子句指定返回元素的类型

因此,您的查询与

var artists = context.Artists
                     .Where(a => a.Name.StartsWith("A"))
                     .OrderBy(a => a.Name);

from用于指定您迭代的项的源(即表)。在Linq中,内容中的a
。艺术家
与将
a
设置为内容的别名几乎相同。艺术家
@Magnus u的意思是
a
是表?@AnkurSharma no
a
是表的别名。喜欢以
的形式从艺术家那里书写
SQL@Magnus:不,它不是表的别名。这是一个范围变量。@Jason-在这个上下文中有什么区别?from用于指定您迭代的项的来源(即表)。在Linq中,内容中的a
。艺术家
与将
a
设置为内容的别名几乎相同。艺术家
@Magnus u的意思是
a
是表?@AnkurSharma no
a
是表的别名。喜欢以
的形式从艺术家那里书写
SQL@Magnus:不,它不是表的别名。这是一个范围变量。@Jason-在这个上下文中有什么区别?SQL甚至不是向后的,而是由内而外的。名称解析信息在SQL表达式中“流动”的方式很奇怪,正如您所指出的,计算发生的顺序并不是它们在页面上出现的顺序。LINQ旨在缓解这两个问题;范围规则和事件顺序都从左到右保持一致。SQL甚至不是向后的,而是由内而外的。名称解析信息在SQL表达式中“流动”的方式很奇怪,正如您所指出的,计算发生的顺序并不是它们在页面上出现的顺序。LINQ旨在缓解这两个问题;范围规则和事件顺序都从左到右保持一致。