问题标签 [dynamicquery]

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 回答
437 浏览

dynamicquery - 有没有人使用表定义的列构建动态查询引擎?

我有一个名为“字段”的表,其中包含应用程序字段。在此表中,我存储每个字段的元数据(TableName、ColumnName、JoinType(内部/外部)。

我有一些工作,但它不像我想要的那样干净。

有没有人解决过这个问题?

我正在寻找一些关于更好做法的想法。

0 投票
2 回答
267 浏览

c# - Enhanced DynamicQuery?

I've recently started using the DynamicQuery API, and it quickly became apparent that it has numerous limitations. I've found at least one improvement online: support for enum arguments, but it's pretty clear that this API is not actively maintained (if at all).

In case I'm wrong and there is somebody maintaining an improved version - please post a link!

Alternatively, a separate, active project with similar goals would also be of interest.

(Clarification: I'm looking to parse strings at runtime.)

0 投票
2 回答
2219 浏览

performance - 使用 HibernateCritera API 和 Oracle 进行动态查询 - 性能

我必须使用 Hibernate 并从 Oracle 检索数据,但问题是,传递给查询的参数数量并不总是相同的。

为简单起见,让我们考虑以下查询:

从 TAB_1 中选择 COL_1、COL_2、...、COL_N,其中 COL_1 在 (?, ?, ... ?)

传递给 in 子句的参数数量在 1 到 500 之间。如果数量在 1-50 左右,它的工作速度非常快,但对于 200,它需要几秒钟来执行查询(解析、创建解释计划、执行查询) . 索引被创建和使用 - 它被检查过。

查询是动态创建的,所以我使用 Hibernate Criteria API。对于第一个查询(具有 > 100 个参数),它需要 3-5 秒,但对于下一个查询,它的工作速度更快(即使参数数量不同)。我想改进第一个查询的响应时间。假设 Hibernate 是必须的,在这种情况下我该怎么办?

我想删除这个动态查询,在 xml 文件中创建一些静态查询作为命名查询(在这种情况下,这些查询将在开始时预编译)例如

1) 如果参数个数少于 50,则进行一次查询。

在这种情况下,如果我们有 30 个参数,那么查询将如下所示:

从 TAB_1 中选择 COL_1, COL_2, ..., COL_N 其中 COL_1 在 (PAR_1, PAR_2, ..., PAR_30, -1, -1 , ..., -1 ?)

2)第二个,如果数字在 50 到 100 之间,等等。

问题是使用命名查询和 HQL 并不是那么简单(在 JDBC 中它会很简单)。在 HQL 中,我们只传递了一个列表,并且我们没有在该列表中指定多个参数,即实际上只有一个查询

有没有办法解决这个问题?

顺便说一句,我认为解释计划是针对每个新查询执行的,例如:

(a) select COL_1, COL_2, ..., COL_N from TAB_1 where COL_1 in (?, ?, ..., ?) <100> - 必须创建解释计划

(b) select COL_1, COL_2, ..., COL_N from TAB_1 where COL_1 in (?, ?, ..., ?) <100> - 解释计划不会被创建,因为它已经存在于缓存中

(c) select COL_1, COL_2, ..., COL_N from TAB_1 where COL_1 in (?, ?, ..., ?) <120> - 应该创建解释计划(对于具有 120 个参数的查询没有解释计划) 但与 (a) 相比,它花费的时间更少,几乎与 (b) 相同,因此如果之前执行类似的查询,Oracle 可能可以更快地创建此计划

这是什么原因?

0 投票
1 回答
1349 浏览

c# - C#、Linq、Dynamic Query:过滤存储库之外的动态查询的代码

如果您在存储库中执行以下操作:

您在存储库之外设置条件和值:

您将如何使用 Dynamic Query 对存储库之外的结果进行排序?

当数据从存储库中退出时,我不知何故失去了 DynamicQuery 的性质。是的,我还没有弄清楚如何返回 CarClass 类型,您通常会在其中执行 Select new Carclass { fieldName = m.fieldName, ... }

0 投票
3 回答
361 浏览

c# - 如何扩展 DynamicQuery.cs 以实现 .Single 方法?

我需要为我正在处理的项目编写一些动态查询。我发现我的程序在 Count 和 First 方法上花费了大量时间,所以我开始更改为 .Single,结果发现没有这样的方法。

下面的代码是我第一次尝试创建一个(主要是从 Where 方法复制的),但它不起作用。帮助?

0 投票
2 回答
4157 浏览

c# - 如何将此 Linq SQL 编写为动态查询(使用字符串)?

根据需要跳到“具体问题”。一些背景:

场景: 我有一组产品,其中包含一个填充有 DDL 的“向下钻取”过滤器(查询对象)。每个渐进式 DDL 选择将进一步限制产品列表以及为 DDL 留下的选项。例如,从工具中选择锤子会将产品尺寸限制为仅显示锤子尺寸。

当前设置:我创建了一个查询对象,将其发送到存储库,并将每个选项提供给 SQL“表值函数”,其中空值表示“获取所有产品”。

我认为这是一个很好的努力,但远远不能接受 DDD。我想避免在 SQL 中进行任何“编程”,希望用存储库做所有事情。对此主题的评论将不胜感激。

具体问题:

我将如何将此查询重写为Dynamic Query?像101 Linq 示例这样的链接会很棒,但具有动态查询范围。我真的想将引号中的字段“”传递给这个方法,我想要一个选项列表以及有多少产品具有该选项。

每个 DDL 选项将具有“选择 (21)”,其中 (21) 是具有该属性的产品数量。选择一个选项后,所有其他剩余的 DDL 将使用剩余的选项和计数进行更新。

编辑:附加说明:

到目前为止,我学到的是LinqPad很棒,但仍在寻找答案。最终,我猜像这样完全随机的研究会占上风。哈哈。

编辑:

Jon Skeet 有一个绝妙的主意:将我需要的内容转换为IGrouping<string, Product>. 感谢乔恩斯基特!投射对象后,您可以枚举集合并将结果输入到单独的列表中。

0 投票
1 回答
1408 浏览

c# - 如何让 LinqPad 使用“动态查询”?

Dynamic Query是您添加到项目中的单个 C# 文件。任何人都知道如何添加这个库以便它与LinqPad一起使用?

0 投票
1 回答
3276 浏览

c# - 如何将 Linq 动态查询结果转换为自定义类?

通常,我这样做:

但我有这样的代码:

我可以更改什么语法以产生相同的结果,即如何从第二个 Linq 语句中进行 Category 的投影?

我知道g是相同的并且代表整个表记录,并且我将整个记录拉入只是为了进行计数。我也需要解决这个问题。 编辑:Marcelo Cantos 指出 Linq 足够聪明,不会提取不必要的数据。谢谢!

0 投票
1 回答
334 浏览

linq - 简单的 Linq 动态查询问题

在 Linq Dynamic Query中,Scott Guthrie 展示了一个示例 Linq 查询:

注意投影new( CompanyName as Name, Phone)。如果我有这样的课程:

我怎样才能基本上使用 CompanyContact 数据类型“投射”他的结果,而不对每条记录进行 foreach 并将其转储到不同的数据结构中?据我所知,唯一可用的 .Select 是动态查询版本,它只接受一个字符串和参数列表。

0 投票
3 回答
1939 浏览

entity-framework - 动态 Linq 库 Guid 异常

我遇到了动态 Linq 库的问题。我收到以下错误“ParserException is unhandled by user code ')”或 ','”。我有一个字典,我想根据这个字典创建一个查询。所以我遍历我的字典并附加到一个字符串生成器“PersonId =(字典中的 GUID)。我认为问题是我附加到 PersonId 出于某种原因我似乎无法将我的字符串 guid 转换为 Guid,因此动态库不会崩溃。

我已经尝试将我的字符串 guid 转换为 guid,但没有运气。

我正在使用 VS 2010 RTM 和 RIA 服务以及实体框架 4。

请提供帮助,如果您知道更好的方法,我愿意接受建议。