问题标签 [system.linq.dynamic]

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 投票
2 回答
2644 浏览

c# - 将原始 SQL 与 IQueryable 混合用于动态过滤

在实体框架 6 中,是否可以将动态生成的原始 SQL 与 IQueryable 混合,如下所示:

这会按原样产生结果,但在数据库中执行“tree_additional_filter”以构造 final_query。我怎样才能使实体框架只构造一个查询?

我需要它来创建与静态过滤器字段一起使用的动态过滤器字段。

我还尝试创建只有 Id 列的 TREE_VIEW 实体,我知道它总是在那里。使用 System.Linq.Dynamic 在只有 Id 属性的 TREE_VIEW 实体上动态构造“where”子句,但如果类型中不存在属性,显然无法构建表达式。

0 投票
1 回答
680 浏览

c# - .Net 核心 3.1。需要嵌套分组按项目每日数量显示

我想嵌套分组。
我每周接受订单项目并按类型名称对其进行分组,然后我想收集具有该类型名称的产品的每日销售额并得到如下结果。
但是我在Linq查询中犯了一个错误,我无法解决原因。

我的代码:

OrderItemReportDto :

但错误是:

0 投票
0 回答
335 浏览

c# - 多动态列选择表达式树

需要:允许用户选择 3 列从本地数据库返回。在另一篇文章的帮助下,我能够为程序中的不同应用程序返回 1 列,我想我可以在这里应用相同的过程,但我没有看到如何允许用户在同一个中选择多个列询问。我看到 whereFunc<>最多接受 17 个重载,其中除了一个之外的所有重载都可以是字段,但这似乎不是正确的方法。

例子:

TableX 具有以下列:A、B、C、D、E、F

用户选择 A、D、F 列

查询应返回:

实现此目的的 SQL 语句如下:

如果我知道在运行前将要选择的字段,Linq 语句将类似于以下内容:

*但我看不到如何参数化选择LINQ并将它们作为选择语句中的字段传递。

我得到了使用表达式树堆叠 Linq 表达式部分以返回 1 列(如一个ORDERBY和一个WHERE子句)的概念,但我不知道如何为多个列执行此操作。它的工作方式与构建 SQL 语句的方式相同。我试图使用Expression.New我需要new {}生成返回列列表的想法,这似乎不是正确的过程。

当前设置:使用带有表达式树和 lambda 表达式的扩展方法LINQ返回 1 列。这确实有效。请参阅下面的代码:

问题:我无法弄清楚如何向 lambda 表达式添加额外的列以返回多个选定的列。

尝试组合上述 Select Query lambda 表达式中的项目:

我还尝试使用“Select”语句中的字段变量编写以下内容,

我尝试了以下方法,因为我认为多个重载可以让我

我还研究了将它添加到 PropertyOrField 但它只接受两个重载,一个用于参数表达式,1 个用于字段名称。我只是不知道如何附加更多的列。

通过执行以下操作尝试使用 Linq.Dynamic.Core:

我收到以下异常: System.TypeInitializationException throw System.Linq.Dynamic.Core.Parser.EnumerationsFromMscorlib 的类型初始化程序引发了异常。

0 投票
1 回答
605 浏览

c# - 如何使用 System.Linq.Dynamic.Core 将复杂的查询字符串转换为 lambda 表达式

我有一个像

此表达式作为字符串传递到方法中,因为它来自配置文件。这意味着我必须将字符串转换为表达式才能执行它。

如果我只输入"x => x.Property0 == \" Z \""过滤器变量,那么结果很合适,所以问题似乎是旧的。Any,但我还没有找到问题的解决方案。但是,没有抛出错误,因此没有问题的迹象。

谁能告诉我为什么表达式不能正常工作,或者我需要调整什么才能使其工作。

谢谢

0 投票
1 回答
60 浏览

c# - 父属性的动态 Linq 过滤不起作用

我有与动态 Linq 有关的问题。我有一个定义如下的类结构。

创建了一个 UserProfile 对象,如下所示。

对于普通的 Linq,我可以执行以下操作。我正在尝试查找 UserProfileDetails 中的所有字符串,而我的名字与我的名字不同。

我想将上述 linq 转换为动态 linq 并使用以下

但是上面给出了错误: System.Linq.Dynamic.Core.Exceptions.ParseException: 'String'类型中不存在属性或字段'FirstName'。任何人都可以帮我解决这个问题吗?

0 投票
0 回答
111 浏览

postgresql - 在动态 linq 查询中使用 postgresql unaccent 函数

根据:Query PostgreSQL with Npgsql and Entity Framework using unaccent

我添加了 NuGet 库,一切正常:

但我不知道如何将它与 Dynamic Linq 库结合起来

我尝试了一些类似的东西:

但没有任何效果。有任何想法吗?

0 投票
1 回答
35 浏览

c# - 在新行中按日期添加分组中的运行总和

我正在使用 Syncfusion DocIO 在 .docx 中创建带有一些道具的表格,并且无法在每个新年创建按日期分组的行 => 我需要运行总和的新行。我已经创建了总和行,但是这一行返回所有额外道具(列)的总和,所以我需要的只是每一年的新行运行总和。

我的例子:

几个月 年金 利息已付 本金已付 余额到期 日期
1 84,69 2,50 82,19 917,81 2021/11/12
2 84,69 2,29 82,40 835,41 2021/12/12
2021年总和
3 84,69 2,09 82,61 752,80 2022/1/12
4 84,69 1,88 82,81 669,99 2022/2/12
5 84,69 1,67 83,02 586,97 2022/3/12
6 84,69 1,47 83,23 503,75 2022/4/12
7 84,69 1,26 83,43 420,31 2022/5/12
8 84,69 1,05 83,64 336,67 2022/6/12
9 84,69 0,84 83,85 252,82 2022/7/12
10 84,69 0,63 84,06 168,75 2022/8/12
11 84,69 0,42 84,27 84,48 2022/9/12
12 84,69 0,21 84,48 0,00 2022/10/12
2022年总和
总和 1016,32 16,32 1000,00

我的代码: