学习 LINQ [关闭]

2023-11-24

Overview

我在这个网站上问过很多次的事情之一是LINQ。我提出的问题广泛而多样,而且往往没有太多背景。因此,为了巩固我在 Linq 上获得的知识,我发布了这个问题,以便在我继续了解 LINQ 时使用附加信息来维护和更新它。

我还希望它对于其他想要了解 LINQ 的人来说是一个有用的资源。

什么是 LINQ?

From MSDN:

LINQ 项目是一个代号 .NET 的一组扩展 框架包括 语言集成的查询、设置和 变换操作。它扩展了 C# 和使用母语的 Visual Basic 查询语法并提供类 图书馆利用这些 能力。

这意味着 LINQ 提供了一种使用通用语法查询各种数据源的标准方法。

LINQ 有哪几种风格?

目前,Microsoft 提供了几种不同的 LINQ 提供程序:

  • Linq 到对象它允许您对任何 IEnumerable 对象执行查询。
  • Linq 到 SQL它允许您以面向对象的方式对数据库执行查询。
  • Linq 到 XML它允许您查询、加载、验证、序列化和操作 XML 文档。
  • 实体连接正如建议的Andrei
  • Linq 到数据集

其他还有很多,很多都列出来了here.

有什么好处?

  • 查询多个数据源的标准化方法
  • 查询的编译时安全性
  • 对内存对象执行基于集合的操作的优化方法
  • 调试查询的能力

那么我可以用 LINQ 做什么呢?

Chook提供了一种方法输出 CSV 文件
Jeff展示如何从数组中删除重复项
鲍勃得到一个与数据表不同的有序列表
Marxidad展示如何对数组进行排序
达纳 (Dana) 获得帮助实施使用 Linq 快速排序

从哪儿开始?

链接摘要来自门杀手的问题在下面:
斯科特·格思里 (Scott Guthrie) 提供了他的博客上介绍了 Linq
概述MSDN 上的 LINQ

克里斯·安·奥戴尔建议检查:

  • 迷上了 Linq
  • 101 Linq 示例
  • LinqPad

使用 LINQ 需要什么?

Linq 目前可在 VB.Net 9.0 和 C# 3.0 中使用,因此您需要 Visual Studio 2008 或更高版本才能获得全部优势。 (您始终可以在记事本中编写代码并使用 MSBuild 进行编译)

还有一个工具叫林克桥这将允许您在 C# 2.0 中运行类似 Linq 的查询。

使用 LINQ 的提示和技巧

这个问题使用 LINQ 有一些棘手的方法


实体的 LINQ:

  • 视频演练
  • 9频道视频
  • 实体框架常见问题解答
  • 实体框架性能

我还有很多我标记在 Delicious.com 上.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

学习 LINQ [关闭] 的相关文章

  • 具有条件连接和非匿名返回的 LINQ 查询

    我有一个针对 SQL Server 数据库的 LINQ 查询 该查询将每行的数据写入一个对象Person 在某些情况下 我想加入其他表并添加更多字段Person对象 同时利用 LINQ 延迟加载 The Person类看起来像这样 publ
  • 根据特定属性比较两个列表

    我如何比较 2 个列表并获得不匹配的项目 但根据具体属性 public partial class Cable StateObject public int Id get set public int CablePropertyId get
  • 如何使用 Linq to Entities *不*先检索行从表中删除一行或多行?

    我知道我可以将删除存储过程映射到特定类型的删除方法 但是 这需要将检索到的对象传递给我的上下文DeleteObject method 这已经够糟糕的了 但是如果我想删除 2000 行怎么办 我可以使用 Linq to Entities 执行
  • 我可以删除单个子实体而不加载整个集合吗?

    我有 2 个课程 如下所示 它们可以拥有非常大的集合 一个网站可能有 2 000 多个网站页面 反之亦然 class WebsitePage public int ID get set public string Title get set
  • Linq - 从表达式 创建表达式

    我有一个谓词Expression
  • 具有四个 && 的 LINQ Where 子句

    我正在尝试在Where 子句中创建一个带有4 个参数的LINQ 查询 这是一个 Windows 8 应用程序项目 我正在使用 SQLite 数据库 SQLite 实现 https github com praeclarum sqlite n
  • 传递选择器函数时,OrderBy 不会转换为 SQL

    当我执行时 var t db Table1 OrderBy x gt x Name ToList 在 SQL 分析器中 这是翻译后的 SQL SELECT Extent1 ID AS ID Extent1 Name AS Name FROM
  • 无法将类型 System.Linq.IQueryable 隐式转换为字符串

    我有两个名为 Rank 和 CrewMembers 的表 我想根据 CrewMember 的 id 获取 Rank 表中存在的排名名称 我已将船员 ID 作为参数传递 并在此基础上该方法将返回该特定船员的等级 这就是我的代码 public
  • 如何使用 Linq to Sql 修剪值?

    在数据库中 我有一个名为 联系人 的表 名字和其他此类字符串字段设计为使用 Char 数据类型 不是我的数据库设计 我的对象 Contact 映射到属性中的字符串类型 如果我想做一个简单的测试 通过 id 检索 Contact 对象 我会这
  • 如何将 Linq 扩展到 SQL?

    去年 斯科特 格思里stated http weblogs asp net scottgu archive 2007 07 31 linq to sql debug visualizer aspx 如果你想绝对控制执行的 SQL 你实际上可
  • Linq 选择与另一个表中的 ID 相等的项目

    我不确定这怎么可能 但我有两个表 我想通过表 1 的值从表 2 中获取值 表 1 有一个名为 rank 的外键 它是int 表 2 有一个名为 name 的值 它是string 现在表 1 的 排名 与表 2 的 ID 相关 所以当我说 v
  • LINQ to SQL:从位于不同服务器上的两个数据库获取记录

    我需要从两个不同的表中获取记录 数据库位于两个不同的 SQL Server 中 例如 销售数据库位于服务器 1 上 采购数据库位于服务器 2 上 销售和采购数据库都有一些表集 例如销售数据库中的 table1 和采购数据库中的 table2
  • 如何使用 linq 通过主键组合三个对象列表

    我正在尝试合并 3 个对象列表 我有一个人员列表 地址列表和地址关系列表 我想将这些列表组合成一个按 person id 排序的新列表 将其用作列表视图的数据源 然后能够访问 aspx 页面中的属性 这可能吗 Roughly using S
  • 将 Lambda 表达式树与 IEnumerable 结合使用

    我一直在尝试了解有关使用 Lamba 表达式树的更多信息 因此我创建了一个简单的示例 这是代码 如果作为 C 程序粘贴到 LINQPad 中 它可以工作 void Main IEnumerable
  • LINQ-SQL 重用 - CompiledQuery.Compile

    我一直在研究 LINQ SQL 试图获得可重用的表达式块 以便将其热插入到其他查询中 所以 我从这样的事情开始 Func
  • linq 无法对“Table(req)”执行创建、更新或删除操作,因为它没有主键

    当表没有主键时 如何在表中添加行 正如您的问题标题所示 LINQ to SQL 无法在没有主键的表上执行创建 更新或删除操作 这是不可能的 所以 你可能需要使用DataContext ExecuteCommand http msdn mic
  • 使用左连接获得不适当的输出

    我正在尝试获取变体列表 并且对于每个变体都获取所有subvariants list无论子变体属于何处 特别的Test say 100 这是示例数据 Id TestId SourceSubVariantId TargetSubVariantI
  • SingleOrDefault异常处理

    我有一个示例代码 它调用 SingleOrDefault 方法 3 次 并在任何序列具有多个匹配元素时记录异常 如果我想检查这段代码的哪一部分抛出异常 问题就开始了 是否可以从此异常中获取一些有用的信息 例如谓词参数或集合类型以进行更详细的
  • 在 LINQ 查询中返回不带时间的日期

    我正在编写一个查询 我想计算按日期联系我们的呼叫中心的次数 看起来很简单 但由于联系日期字段是日期时间字段 我得到了时间 因此当我按联系日期 时间 分组时 每个联系日期实例的计数为 1 所以 我想只按日期分组 而不按时间分组 下面是我用来查
  • 实体框架 - 选择特定列并返回强类型而不丢失强制类型转换

    我正在尝试做类似的事情这个帖子 https stackoverflow com questions 1094931 linq to sql how to select specific columns and return strongly

随机推荐

  • 从“int”转换为“size_t”可能会改变结果的符号 - GCC,C

    在我的项目中 我打开了将警告视为错误并使用 pedantic and ansi标签 我正在使用 GCC 编译器 在这个项目中 我必须使用第三方源代码 该源代码有很多警告 由于我将警告视为错误 因此我在修复他们的代码时遇到了困难 大多数警告都
  • 如何在 IE7 中垂直对齐文本而不使用 CSS 'table-cell' 属性?

    我有固定高度的 div 其中包含文本 我希望文本在 div 中间垂直对齐 但问题在于某些文本是单行 而有些文本则分成两行 对于 IE8 Chrome 和 Firefox 使用display table cell and vertical a
  • 在函数中创建类并访问在包含函数的作用域中定义的函数[重复]

    这个问题在这里已经有答案了 Edit 请参阅我在这个问题底部的完整答案 tl 博士回答 Python 具有静态嵌套作用域 这static方面可以与隐式变量声明交互 产生不明显的结果 这可能特别令人惊讶 因为该语言通常是动态的 我以为我对 P
  • Python:midi 到音频流

    我需要将 MIDI 数据转换 合成为音频流 PCM 数据 有什么简单的方法可以做到这一点 随你挑选关于你想要做什么 页面上有一个 MIDI 部分
  • 在matplotlib中计算白色背景上alpha为0.5的RGB等效值

    我希望能够在 matplotlib 中以 0 5 的 alpha 值在白色背景上复制原色 r g 或 b 的外观 同时将 alpha 值保持为 1 下面是一个示例 通过手动实验 我发现 alpha 为 1 的 RGB 值看起来与 alpha
  • 当没有返回结果时处理 ExecuteScalar()

    我正在使用以下 SQL 查询和ExecuteScalar 从Oracle数据库获取数据的方法 sql select username from usermst where userid 2 string getusername comman
  • 重置用户密码

    我正在尝试找到一种通过非交互式登录在 Azure Active Directory 中重置用户密码 所有用户 而不仅仅是经过身份验证的用户 的解决方案 目前看来这只能通过 powershell 的 MSOnline 获得Set AzureA
  • Android 模拟器替代品

    我对 Android 开发完全陌生 但我刚刚拥有一台 HTC Hero 想为其开发一些应用程序 然而 我使用笔记本电脑作为我的开发机器 并且模拟器非常慢 启动大约需要 10 15 分钟 虽然我可以让它保持打开状态 但在使用其他应用程序 如
  • LINQ 按空列排序,其中顺序为升序,空值应该在最后

    我正在尝试按价格对产品列表进行排序 结果集需要按列按价格从低到高列出产品LowestPrice 但是 该列可以为空 我可以按降序对列表进行排序 如下所示 var products from p in context Products whe
  • 如何从Application.Path获取UNC路径?

    我想获取 vba 代码中活动工作簿的路径 ActiveWorkbook Path做这个 BUT 我需要它来检索这样的东西 MachineName ShareFolder ETC ETC2 NOT S ETC ETC2 Where S 映射到
  • 为什么在访问模型时,backbone.js 返回一个空数组?

    我有一个路由器访问其集合 我的 for 循环没有迭代模型 因此我尝试记录集合以查看它返回的内容 事实证明 当我直接记录集合时 我会按预期看到所有模型 但是 如果我尝试记录集合的 models 属性 我会得到一个空数组 这没有道理 这些线直接
  • C# 中 async/await 的这种用法以前被发现过吗? [关闭]

    很难说出这里问的是什么 这个问题模棱两可 含糊不清 不完整 过于宽泛或言辞激烈 无法以目前的形式合理回答 如需帮助澄清此问题以便重新打开 访问帮助中心 在我之前在 stackoverflow 上提出了关于 async await 的问题之后
  • 以编程方式查明进程是否需要用户输入

    我如何以编程方式 在 C 中 确定另一个外部应用程序 本机 java NET 或其他 当前是否需要用户输入 这可以在托管代码中完全完成吗 我正在寻找的是实施 static Boolean IsWaitingForUserInput Stri
  • Google Maps API 自动完成同一页面上的第二个地址字段

    我在我的页面上使用 Google Maps API 该页面要求用户填写您的 当前地址 和 新地址 我可以让自动完成功能在第一个地址上工作 但它不适用于第二个地址 我做了很多研究并查看了 stackoverflow 上的类似帖子 但我找不到任
  • 在 try/catch 块中等待两个承诺会导致“未处理的承诺拒绝”[重复]

    这个问题在这里已经有答案了 我想等待两个并行运行的承诺 我不想连续等待每个承诺 这有效但速度较慢 出于这个原因 我认为我可以首先创建两个承诺来让它们滚动 比如说两个网络请求 然后等待它们并能够在 catch 块中捕获错误 这个假设似乎是不正
  • Django - 按模板中的某个字段对查询集进行分组

    我有一张桌子Events 按字段排序date 我想打印模板中的事件 但为每个日期使用单独的 div 例如 div class content h1 December 30th h1 div div class content h1 Dece
  • #1025 - mysql 中重命名错误(errno:150)

    我试图在一个表 misc 中删除一个外键 id 它是表 main 中的主键 id 数据库名称 xxx alter table misc drop FOREIGN KEY id 我收到这个错误 1025 将 interview sql edc
  • 如何使用 dotnet CLI 构建 .NET Framework 4.8 应用程序?

    我继承了一个 NET Framework 4 8 应用程序 我可以使用 Visual Studio 对其进行编译 但是当尝试使用dotnetCLI 应用程序 对于我从外部依赖项使用的所有类型 我都会收到 CS0246 错误 原来的错误消息
  • Spring授权服务器:如何使用托管在单独应用程序上的登录表单?

    我正在使用 Spring Security 和 Spring Authorization Server 并尝试创建身份验证服务器 我有一个基本流程 允许我使用预先构建的登录页面 从拜尔东指南 这是我正在处理的代码 我假设这个登录页面表单来自
  • 学习 LINQ [关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 目前不接受答案 Overview 我在这个网站上问过很多次的事情之一是LINQ 我提出的问题广泛而多样 而且往往没有太多背景 因此 为了巩固我在 Linq 上获得的