有人可以解释一下fromlinq 中的用途吗?在 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);