有人可以解释一下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 中的顺序略有不同的原因是为了协助解析器和 IntelliSense 引擎。
它与 SQL 中的运算符完全相同。查询语句只是向后编写以使 IntelliSense 和类型推理工作。当 FROM 结束时,这些功能无法正常工作。
当您使用工具构建 SQL 语句时,您实际上在做同样的事情。您首先指定要查询的内容,然后绘制 JOIN 链接,然后选择您感兴趣的列。一个向后的工作流程,就像 Linq 查询理解一样。事实上,你可以说 SQL 是倒退的 :)
所有LINQ
查询操作都包含三个不同的操作:
from
子句指定数据源,子句where
应用过滤器,select
子句指定返回元素的类型。
因此,您的查询与
var artists = context.Artists
.Where(a => a.Name.StartsWith("A"))
.OrderBy(a => a.Name);