1

有人可以解释一下fromlinq 中的用途吗?在 MySQL 中,from用于指定表。但我不明白它在 linq 中的用途。

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

3 回答 3

3

它基本上意味着同样的事情。特别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 中的顺序略有不同的原因是为了协助解析器和 IntelliSense 引擎。

于 2013-06-16T15:47:02.167 回答
3

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

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

于 2013-06-16T15:47:17.010 回答
1

所有LINQ查询操作都包含三个不同的操作:

  • 获取数据源。
  • 创建查询。
  • 执行查询。

from子句指定数据源,子句where应用过滤器,select子句指定返回元素的类型。

因此,您的查询与

var artists = context.Artists
                     .Where(a => a.Name.StartsWith("A"))
                     .OrderBy(a => a.Name);
于 2013-06-16T15:49:06.690 回答