有人可以解释linq中使用from
的内容吗?在MySQL中,from
用于指定表。但我不明白它在linq中的用法。
var artists = from a in context.Artists
where a.Name.StartsWith("A")
orderby a.Name
select a;
答案 0 :(得分: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引擎。
答案 1 :(得分:3)
它与SQL中的运算符完全相同。查询语句只是向后写,以使IntelliSense和类型推断工作。当FROM结束时,这些功能不能很好地工作。
当您使用工具构建SQL语句时,您所做的基本相同。首先指定要查询FROM的内容,然后绘制JOIN链接,然后选择您感兴趣的列。工作流也是向后的,就像Linq查询理解一样。事实上,你可以说SQL是倒退的:)
答案 2 :(得分:1)
所有LINQ
个查询操作都包含三个不同的操作:
from
子句指定数据源,where
子句应用过滤器,select
子句指定返回元素的类型。
因此,您的查询与
完全相似var artists = context.Artists
.Where(a => a.Name.StartsWith("A"))
.OrderBy(a => a.Name);