问题标签 [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.

0 投票
3 回答
74607 浏览

c# - 使用 linq 返回对象的特定属性列表

给定这样的类:

可以说我现在有一个List<Stock>. 如果我想检索所有 StockID 的列表并将其填充到 IEnumerable 或 IList 中。显然我可以做到这一点。

但是有什么方法可以使用 Linq 来达到相同的结果吗?我认为Distinct()可能会这样做,但无法弄清楚如何达到预期的结果。

0 投票
4 回答
4175 浏览

c# - 将存储过程转换为 LINQ

我正在使用 MVC3 并且仍在学习 LINQ。我在尝试将查询转换为 LINQ to Entities 时遇到了一些麻烦。我想返回一个 Json 方法

我的存储过程

我有几张表,我开始在 LINQ 中写出来,但我不确定如何正确返回正确的类型或强制转换它。

我的控制器

我将如何将参数传递给查询,希望数据以 json 格式返回。

0 投票
1 回答
3621 浏览

c# - 正确过滤 Linq 查询

我有这个查询从一堆商店中检索销售,并将它们作为列表返回。在我的报告请求屏幕上,用户可以按多个 id 进行过滤 - ShopOwnerId、ShopRegionId、ShopTypeCode 等。

我的查询构造为获取所选日期之间的所有销售,然后根据选择进行过滤。这显然是非常低效的。:

您可以看到,此方法仅在未选择过滤器时才在特定日期之间查询销售表。

我坚持的是,用户可以选择多个过滤器 - 例如,他们可能选择一个 regionId 和一个 ShopTypeCode,所以我不想为每个 if 过滤器查询 ctn.ShopSales,因为如果不止一个是选择,它将清除以前检索到的值。

有没有人对如何解决这个问题有任何建议?如果需要更多信息,请询问!

谢谢

0 投票
2 回答
4215 浏览

c# - Linq-to-SQL,传递表达式> 在查询语法中选择方法

假设,我们有下一个代码:

我想将选择器提取为表达式并将其存储在另一个地方。在方法语法中,它将如下所示:

是否可以将此 LinqToSql 方法链转换为保持 Expression 变量就地的查询语法?

升级版:

为了澄清我的问题,我使用 DefaultIfEmpty 进行左连接,它是相等查询的一种简短形式:

它可以正常工作,因为它使用内联表达式进行编译。null当没有对应的 时,它分配给 Name 字段grunt。但是如果用调用外部映射器方法重写这个查询,它将被编译为方法调用,这将得到可为空grunt的参数,并会导致 NullReferenceException:

当然,我可以在映射器方法中添加空检查,但我在 DAL 中试图实现的是将选择器提取到映射器类中,并可能在那里省略空检查。

0 投票
2 回答
820 浏览

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

您将如何使用 LINQ 查询语法编写这个完全相同的查询?

我虽然这应该工作,但它没有:

如果你想玩它,这里有一个测试程序:

0 投票
1 回答
2261 浏览

entity-framework - 跨关联的 LINQ 查询

我有一个从我的数据库生成的实体框架。在这个数据库中有一个名为 User_Security_Role 的表,它由两个字段组成:Employee_ID 和 User_Name。这两个字段都充当其主键,也是外键。这些字段来自两个表 Sytem_Role(以 Role_ID 作为其 PK)和 User_Identity(以 User_Name 作为其 PK)。生成 .edmx 文件时,User_Security_Role 表不是作为表生成的,而是作为两个实体之间的关联集生成的:System_Role 和 User_Identity。

我想用以下查询查询 EF:

但是,“User_Security_Role”没有显示为实体集中的实体,现在我不确定如何查询它,因为它是一个关联集。如何编写 linq 查询以从关联而不是实体中选择数据?

0 投票
3 回答
11909 浏览

.net - 如何使用 Lambda 将 LINQ 理解查询语法转换为方法语法

是否有工具、过程或解决方案可以将以下 LINQ 查询语法转换为带有 Lambda 的方法语法(点表示法)?我希望解决方案将以下查询语法转换为这样的方法语法。

到以下

我想用它来更好地学习方法语法。

0 投票
3 回答
1648 浏览

linq - 在 CRM 2011 插件的同一语句中使用多个 JOIN 时出现 LINQ 错误

嗨,我正在尝试在 CRM 2011 中加入多个实体,但我收到错误消息:{“'xrmsm_sessionEnrollments' 实体不包含名称 = 'xrmsm_termsid'.”的属性。”}。这是正确的,但我正在加入具有该属性的实体。

我的 Linq 查询:

var query2 = from e in svsContext.xrmsm_sessionEnrollmentsSet

p>

我在 SQL Server 上工作的原始 SQL 查询:

0 投票
1 回答
693 浏览

vb.net - 我可以在查询表达式语法中指定 Queryable.GroupBy(而不是 Enumerable.GroupBy)吗

当我编写Group Byin 查询表达式语法时,编译器会自动选择Enumerable.GroupBy我想要的 tareget 方法,我得到一个IEnumerableback 而不是IQueryable. 这意味着后续g.Sum调用(在 my 内部Select)需要 aFunc(Of TSource, int)而不是Expression(Of Func(Of TSource, int)). 有没有办法强制Group By使用它Queryable.GroupBy并给我一个IQueryable

人为的示例代码

我为什么要这样做? 编译器会根据目标变量类型自动在 lambda 和表达式之间进行转换(即Dim f As Func(Of String, Integer) = Function(x) x.Length()和都是有效的),因此 an和Dim e As Expression(Of Func(Of String, Integer)) = Function(x) x.Length()之间的代码没有明显差异。IEnumerableIQueryable

问题是,LINQ to Entities(我假设其他数据库支持的 LINQ 实现)依赖于表达式树来转换为 SQL。这意味着IEnumerablelambda 版本不会IDbSet像我在这个旧问题中发现的那样对抗。

0 投票
3 回答
1191 浏览

c# - 如何使用查询语法来创建排列?

我试图编写一种方法,该方法尽可能简单地返回给定枚举的排列。编码:

由于迭代器块中的代码已经简化,我试图使它成为一个简单的 LINQ 查询表达式。

在嵌套的代码中有一个递归,甚至在;foreach之外可能还有另一个可能 yield foreach这是我用查询语法重写它的困难部分。

我读过这个答案:

C# 字符串排列

但我想这不是我的解决方案..

我尝试了各种方法,并认为这并不容易做到。我怎样才能完成它?

Exchange方法是另一个问题,我问了一个问题:

如何通过只交互一次来交换枚举项?

但我想这不是问题..)