问题标签 [linq-query-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.
asp.net-mvc - 在asp.net mvc中的多对多关系中插入linq查询
大家好,我在 asp.net mvc 中遇到问题。
我有两个表Users
和Projects
第三个表,它们在其中创建了多对多关系,User_Project
但是当我在 Visual Studio 中导入表时,没有表,User_Project
但我可以从导航或类似中访问这些值db.Users.Where(u => u.Projects.Contains(SomeUser));
。
但现在我只想添加User
与某个项目相关的数据库,我正在使用以下查询但它不起作用。
希望我解释了我的问题。
无法更新 EntitySet 'User_Project',因为它具有 DefiningQuery 并且元素中不存在支持当前操作的元素。
Users.ID
我在两个表中也有主键,Projects.ID
还有 edmx 文件中的链接。
用户模型
项目模型
linq - LINQ-to-Object 是 LINQ 提供程序吗?
我有些困惑,在 Linq-to-Object 中,我们使用内存数据来执行由 c# 语言处理的 LINQ 查询。
当我编写基于内存数据执行的 Linq 查询时,为什么我们使用提供程序(LINQ-to-Object)?
c# - 将 foreach 和 if 转换为 linq 查询
我试图将上述 foreach 循环转换为 linq 查询,如下所示。
但它让我出现以下错误@l.Key
`
c# - 使用子查询过滤子集合
我在sql中有一个查询,如下代码所示:
现在我必须将其转换为 linq 语法,因为我使用 EF 作为我的数据访问。转换最后一行时遇到问题:
和我的 linq 语法:
如何解决这个问题?
linq - 如何将 if-else 混合到 linq 查询语法语句中
我有两个系列。Notifications 集合和 Document 类型集合。我需要收集有关它们的信息,并根据某些内容添加一个额外的字段。但是,我不知道如何做到这一点。
我从文档类型集合中获取文档类型 ID 和名称。而且我只从 Notifications 集合中获得了一个文档类型 ID。如果两者都存在 ID,则应在返回值中添加一个额外字段,该字段是简单的“已订阅”字符串值。如果不是,则字符串值应为“Unsubscribed”。当然,我也可以使用 bool 值。
这是我到目前为止得到的。
从通知中获取我需要的代码:
从文档类型中获取我需要的代码:
(注意:如果我可以在这里加入,我更愿意这样做。)
我还没有加入。我不知道如何将字段添加到 select new 中,因为这样做时它一直给我错误。而且我不知道如何在查询语法中执行某种 if-else 语句。我知道我曾经在 TSQL 中这样做过,所以我希望在 linq 中也可以。
我尝试过但对我来说“感觉”不对的代码:
所以在这里我尝试了一些方法来添加第三个字段。我的做法对我来说感觉有点脏,但如果没有其他选择,我会使用它。我现在需要的是如何添加 if-else 部分。我知道如何做一个multiplefrom select,但不知道如何做if-else部分。
编辑
两个集合里面有什么:
文件类型:
- ID
- 姓名
- 供应商 ID
- 其他无关的东西
通知:
- ID
- 文档类型ID
- 用户身份
- 其他无关的东西
我想要的输出:
每个对象包含三个项目的列表,即:
- 文档类型 ID
- 文档类型名称
- 布尔值(如果通知集合中存在文档类型 ID,则为 true,否则为 false)
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 的集合,然后将其与我制作的新集合相结合,还是有更好的方法来解决这个问题?
sql-server - 如何将 Linq 查询转换为 SQL 查询
我无法理解All
下面代码中的函数功能,我只想为下面的查询编写 SQL 存储过程..
我只是混淆了在 SQL 中使用什么来代替 .All() 方法...请回答
我刚刚发现 Linq 查询的 Entity Framework Generated SQL 查询太长了,如下所示
它正在工作,但这不是一个好方法,请建议
c# - 将方法语法转换为查询语法
有没有办法自动从 linq 方法语法转换为查询语法?
EG:我想自动转换它:
对它:
vb.net - 使用菜单按钮修改 LINQ 搜索词
在 VBS 2015 中,我创建了一个表单,该表单使用 LINQ 查询来导入名称、位置、年龄等的 CSV 文件,并使用唯一记录进行排序。数据被输入到数据网格中,然后可以通过从 MenuStrip 中选择按钮进行过滤和排序。使用 LINQ 查询进行排序和过滤的过程非常简单;数组可以按升序或降序排序,也可以按字段之一排序。如果该字段与查询匹配,则整个记录(五个字段)将显示在数据网格中。
到目前为止一切都很好,但这是我的问题:
如何在不为每个条件组合编写完整查询的情况下同时应用两个不同的条件?
例如,为了明确我的问题,我可以使用原始查询按降序对数组进行排序,但是当我选择过滤器时,结果会按升序显示。反之亦然,如果结果已经使用五个字段可能性之一进行过滤,我如何将排序按钮应用于预过滤结果?
通过为每个过滤器/排序组合编写单独的查询,我想出了一个非常冗长和复杂的方法。每次选择一个按钮时,都会使用基于 mnuButton.Checked = True/False 布尔值的 If 块评估另一个菜单的检查值,然后运行并显示相应的查询。
这是我在按下某个过滤器按钮时执行的代码的示例。这个 sub 应该检查是否已经选择了一个排序按钮,然后,基于此,运行返回相同过滤结果的两个查询之一,只是按升序或降序排列。
这对于一个按钮来说是极其漫长、笨拙和耗时的,并且有十种不同的可能性......?我确信有更好的方法来编写可重用查询或仅对数据网格中显示的结果进行排序......而不是从原始文件中提取的内容。
由于用于对查询结果进行排序的菜单项非常常见,因此我确信这里有一种简化的方法可以实现我的最终目标。
在此先感谢您的帮助,对于任何不清楚和这个问题的不公平之处,我提前道歉......我只使用 VB 几个星期。