问题标签 [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.
c# - 将原始 SQL 与 IQueryable 混合用于动态过滤
在实体框架 6 中,是否可以将动态生成的原始 SQL 与 IQueryable 混合,如下所示:
这会按原样产生结果,但在数据库中执行“tree_additional_filter”以构造 final_query。我怎样才能使实体框架只构造一个查询?
我需要它来创建与静态过滤器字段一起使用的动态过滤器字段。
我还尝试创建只有 Id 列的 TREE_VIEW 实体,我知道它总是在那里。使用 System.Linq.Dynamic 在只有 Id 属性的 TREE_VIEW 实体上动态构造“where”子句,但如果类型中不存在属性,显然无法构建表达式。
c# - .Net 核心 3.1。需要嵌套分组按项目每日数量显示
我想嵌套分组。
我每周接受订单项目并按类型名称对其进行分组,然后我想收集具有该类型名称的产品的每日销售额并得到如下结果。
但是我在Linq
查询中犯了一个错误,我无法解决原因。
我的代码:
OrderItemReportDto :
但错误是:
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 的类型初始化程序引发了异常。
c# - 如何使用 System.Linq.Dynamic.Core 将复杂的查询字符串转换为 lambda 表达式
我有一个像
此表达式作为字符串传递到方法中,因为它来自配置文件。这意味着我必须将字符串转换为表达式才能执行它。
如果我只输入"x => x.Property0 == \" Z \""
过滤器变量,那么结果很合适,所以问题似乎是旧的。Any,但我还没有找到问题的解决方案。但是,没有抛出错误,因此没有问题的迹象。
谁能告诉我为什么表达式不能正常工作,或者我需要调整什么才能使其工作。
谢谢
c# - 父属性的动态 Linq 过滤不起作用
我有与动态 Linq 有关的问题。我有一个定义如下的类结构。
创建了一个 UserProfile 对象,如下所示。
对于普通的 Linq,我可以执行以下操作。我正在尝试查找 UserProfileDetails 中的所有字符串,而我的名字与我的名字不同。
我想将上述 linq 转换为动态 linq 并使用以下
但是上面给出了错误: System.Linq.Dynamic.Core.Exceptions.ParseException: 'String'类型中不存在属性或字段'FirstName'。任何人都可以帮我解决这个问题吗?
postgresql - 在动态 linq 查询中使用 postgresql unaccent 函数
根据:Query PostgreSQL with Npgsql and Entity Framework using unaccent
我添加了 NuGet 库,一切正常:
但我不知道如何将它与 Dynamic Linq 库结合起来
我尝试了一些类似的东西:
但没有任何效果。有任何想法吗?
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 |
我的代码: