什么是LINQ,什么不是LINQ?
我看到过以下所有的例子都被称为LINQ什么是LINQ,什么不是LINQ?,linq,Linq,我看到过以下所有的例子都被称为LINQ var y = _context.Persons; IQueryable<Person> x = _context.Persons; var z = from tblPerson in _context.Persons select tblPerson; var y=\u context.Persons; IQueryable x=_context.Persons; var z=来自_context.Persons中的tblP
var y = _context.Persons;
IQueryable<Person> x = _context.Persons;
var z = from tblPerson in _context.Persons
select tblPerson;
var y=\u context.Persons;
IQueryable x=_context.Persons;
var z=来自_context.Persons中的tblPerson
选择tblPerson;
它们都是LINQ,只是味道不同,还是仅仅是zLINQ?如果是的话,其他两个叫什么?如果他们都是LINQ,我在谷歌搜索他们的信息时如何区分这三个?对于y和x,我应该在MVC核心中使用var还是IQueryable(以及原因),我应该在z上使用吗?感谢Jereon提供的链接。不确定var或IQueryable是否与LINQ的实现有内在联系,或者这是否是一个更一般的问题。它是通用的 从以上各种LINQ的链接
from tblPerson in _context.Persons
select tblPerson;
db.Person = _context.Persons
.Include(px => px.Gender)
.Include(px => px.Title)
.Include(px => px.AddressIDs)
.ThenInclude(px => px.AddressType)
.Where(px => px.Name.Contains("foo")
.OrderBy(px => px.Name);
被称为
- 查询语法
- 查询表达式
- 查询理解语法
from tblPerson in _context.Persons
select tblPerson;
db.Person = _context.Persons
.Include(px => px.Gender)
.Include(px => px.Title)
.Include(px => px.AddressIDs)
.ThenInclude(px => px.AddressType)
.Where(px => px.Name.Contains("foo")
.OrderBy(px => px.Name);
被称为
- 扩展方法
- 方法语法
- 流畅的语法
- 在整个项目中使用其中一个
- 混合和匹配对以下内容使用查询语法
- 使用let关键字时
- 当您有多个生成器(from子句)时
- 做连接时
和其他扩展方法。如果您需要
使用System.Linq
来使用它,那么它就是Linq。否则就不是。。回到基础(如原始概念)可能会增加一些清晰度。特别注意“LIN”:集成语言。具有一些简洁特性的类本身并不是语言集成的。当然,所有帮助实现LINQ的方法也被认为是LINQ的一部分。“我应该使用var
还是IQueryable
”是一个完全不同的问题,与“什么是LINQ”无关。在那个问题上发表了大量的意见。(然而,在q中选择a几乎完全是多余的,在大多数情况下,无论涉及到哪一个提供者,都会被替换为s
。)