问题标签 [linq-method-syntax]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
86 浏览

entity-framework - LINQ 通用 GroupBy 和 SelectBy 方法语法

我试图让它通用但没有成功。它没有获得相关的用户实体。

我试过了:

它在使用时出错:

0 投票
4 回答
499 浏览

c# - 比较 LINQ 方法语法中的 2 个数字列表

我有 2 个数字列表。

我需要如下输出

预期结果

如何通过LINQ方法语法实现?

0 投票
2 回答
239 浏览

c# - .NET Linq 语句的问题

Linq 和 Query 的语法是我最薄弱的技能之一。我在获得所需结果时遇到问题。

我有两个表/集合。一个是 DocumentTypes,另一个是 Notifications。这些是他们认为重要的领域,我省略了那些无关紧要的领域。

文档类型

  • ID
  • 姓名
  • 供应商 ID

通知

  • ID
  • 文档类型ID
  • 用户身份
  • 产品编号
  • Last_Sequence

我有三个参数;用户 ID、供应商 ID 和产品 ID。

我需要供应商 ID 来获取与该供应商相关的所有 DocumentTypes 的列表。然后我需要 userID 和 ProductID 来获取与这些相关的通知列表。

然后我需要加入这两个列表,每个通知都会有一个与之链接的 documentTypeID。当有特定文档类型的通知时,它需要包含字段 Last_Sequence 并创建一个设置为 true 的新 bool 字段。

当没有通知时,可以将 Last_sequence 留空,并创建 bool 并将其设置为 false。

所以结果将是一个包含具有这些类型的对象的列表。

  • 文档类型ID
  • 文档类型名称
  • BoolField(确实有一个与此相关的通知)
  • NotificationID(仅当有一个时)
  • Last_sequence(仅当有一个时)

到目前为止我所拥有的。

以前的版本只需要添加 bool 字段,以及 documentType 信息。为此,我有这个声明,但我似乎无法添加我需要的内容:

我为新的尝试过的是这个,但它只会在有通知绑定时返回数据。如果没有,它不会返回该 documentType 数据。

编辑:这是我尝试过但不起作用的示例。这里的问题是当我尝试执行 n.last_sequence 时 n 不存在。

我想知道我应该如何解决这个问题。我是否需要先制作所有正确 DocumentTypes 的集合,然后将其与我制作的新集合相结合,还是有更好的方法来解决这个问题?

0 投票
0 回答
71 浏览

c# - 将方法语法转换为查询语法

有没有办法自动从 linq 方法语法转换为查询语法?

EG:我想自动转换它:

对它:

0 投票
1 回答
81 浏览

c# - LINQ 方法语法包括 4 层深度

我一直在搜索但没有成功(或不知道如何正确搜索)所以我来找你。

查看这些测试类:

我想要做的是使用急切加载在 1 次调用中获取所有这些类(确保数据库只被调用一次)。

下面是TSQL我要转换为LINQ Method语法的实际内容(我认为是正确的术语)而不是LINQ Query语法。

这是我到目前为止所得到的

虽然我不认为这很重要,但我想指出,以防万一,最后,我需要做一些事情A,然后,我需要得到所有D的有Show == true

0 投票
2 回答
83 浏览

c# - 具有 List 类型的两个列表所需的具有方法语法的 Linq 查询

我需要一个带有方法语法的 linq 查询,并从 fullMessagesList 中返回“这是一个柠檬”、“这是一个橙色”。我需要检查另一个列表中每个文本的 contains() 。

我已经使用老式的 foreach 循环编写了它,但需要使用方法语法使用 linq 来计算它。

0 投票
3 回答
2042 浏览

c# - 带有 INNER 和 OUTER 连接的 LINQ 方法语法

我有 3 个课程并试图用来LINQ methods执行一个INNER JOIN和一个LEFT JOIN. 我能够分别执行每个,但没有运气在一起,因为我什至无法弄清楚语法。

最终,我要编写的 SQL 将是:

课程

样品

我希望结果是 type Group。我成功地执行了LEFT JOINbetween Sectionand Course,但是我有一个IQueryable<a> , which is not what I want, sinceGroup` 类型的对象。

我也试过这个,但返回NULL是因为它INNER JOIN在所有表上执行,并且用户没有输入任何Courses.

问题

如何以最少的数据库调用次数执行 anINNER和 a并获得 type 的结果?LEFT JOINGroup

期望的结果

我想有 1 个类型的对象Group,但只要 aGroup有一个Section. 我还想返回Courses用户拥有的特定Section或 return NULL

0 投票
0 回答
179 浏览

c# - 三元运算符中的条件在“Where”方法中被忽略。还有其他更好的查询方法吗?

我正在尝试实现一种使用 EF 和 Linq 方法语法从数据库中检索数据的方法。该方法有 5 个参数(四个 List 和一个字符串),每个参数必须作为查询结果的过滤器。

在“Where”方法中使用三元运算符在以下代码的某些表达式(1-4)中有效,但在表达式(5)中,无论“nameFilter”的字符串值如何,使用三元运算符都完全忽略了 Where 条件在表达式 (5) 中被忽略,在调试时我检查了!nameFilter.Equals("")当 nameFilter 值为“”时条件结果为真。

Finnaly,尝试解决问题我已经改变了表达.Where( u => !nameFilter.Equals("") ? u.NAME.ToUpper().Contains( nameFilter.ToUpper() ) : true );

.Where( u => nameFilter.Length > 0 ? u.NAME.ToUpper().Contains( nameFilter.ToUpper() ) : true )

它奏效了。

我是 C# 和实体框架的新手,所以我想了解为什么将三元运算符与字符串进行比较时,在与“长度”进行比较时会以某种方式被忽略,这给了我预期的结果。是否有另一种方法可以使用 Entity Framework 运行此查询?

提前致谢。

0 投票
1 回答
41 浏览

c# - LINQ to XML 选择类似于 SQL IN 子句的元素

我有一些包含付款信息的 XML,其中包括付款所应用的发票的详细信息。例如,我想使用 LINQ to XML 仅收集适用于某些发票 (111,222,333) 的付款。如果是 SQL,我可以使用 IN (111,222,333) 关键字,但我不确定如何在 LINQ 中执行相同的操作。

LINQ

在此示例中,我想选择“PaymentId 1”和“PaymentId 2”,因为它们适用于 ID 匹配 111、222 或 333 的发票。

0 投票
2 回答
182 浏览

entity-framework - 实体框架方法语法命名约定

实体框架查询使用了哪些命名约定?例如,以下代码使用 'e. 他们为什么使用e?方法语法中委托缩写的命名约定策略是什么?这个问题不是征求意见,只是常见的命名约定。