首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >什么是LINQ,什么不是LINQ?

什么是LINQ,什么不是LINQ?
EN

Stack Overflow用户
提问于 2017-07-28 12:01:33
回答 1查看 360关注 0票数 0

我见过以下所有内容都被称为LINQ的例子。

代码语言:javascript
复制
var y = _context.Persons;
IQueryable<Person> x = _context.Persons;
var z = from tblPerson in _context.Persons
        select tblPerson;

它们都是LINQ,只是味道不同,还是只有z LINQ?如果是这样的话,另外两个叫什么名字?如果他们都是LINQ,那么当我在谷歌上搜索关于他们的信息时,我该如何区分这三者呢?对于yx,我应该在MVC核心中使用var或IQueryable (以及为什么),并且应该在z上使用

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-07-28 14:04:51

感谢Jereon的链接。不确定var或IQueryable是否内在地链接到LINQ的实现,或者它是否是一个更通用的问题。是通用的。

从上面的链接中可以找到这种LINQ

代码语言:javascript
复制
from tblPerson in _context.Persons
        select tblPerson;

被称为

  • 查询语法
  • 查询表达式
  • 查询理解语法

而这个品种的LINQ

代码语言:javascript
复制
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);

被称为

  • 可拓法
  • 方法语法
  • fluent语法

至于用法,一般的意见似乎分为两个阵营。

  • 在整个项目中使用一种或另一种。
  • 混合匹配使用以下查询语法
代码语言:javascript
复制
- when using the let keyword
- when you have multiple generators (from clauses)
- when doing joins

以及其他所有东西的扩展方法。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45373010

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档