问题标签 [compiled-query]

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 投票
1 回答
1065 浏览

c# - 帮助 linq to sql 编译查询

我正在尝试将编译查询用于我的 linq to sql 查询之一。此查询包含 5 到 6 个连接。我能够创建已编译的查询,但我面临的问题是我的查询需要检查密钥是否在作为输入传递的密钥集合中。但是编译的查询不允许传递集合(因为集合可以有不同数量的项目,因此不允许)。

例如

函数的输入是键的集合。说:List<Guid> InputKeys

上述查询无法编译,因为它将列表作为输入之一。是否有任何解决方法或更好的方法来完成上述操作?

0 投票
2 回答
232 浏览

c# - 在编译查询中包含“离线”代码

当我在编译的查询中包含一个函数时,幕后会发生什么,就像我在这里使用 DataConvert.ToThema() 将表对象转换为我的自定义业务对象一样:

并这样称呼它

显然该函数没有翻译成 SQL 或其他东西(怎么可能),但是当我在 VS2010 中设置断点时它也不成立。

它可以正常工作,但我不明白如何或为什么。那里究竟发生了什么?

0 投票
0 回答
123 浏览

linq - 确定何时(或不)预编译 Linq 查询的最佳实践是什么?

我目前正在重构一个 Silverlight 应用程序并将常用查询提取到一个实用程序类中。应用程序中有很多查询,虽然有一些明显的目标,但当我开始处理非常小的查询时:

值得编译吗?我读过的所有内容(Programming Entity Framework 2ed)和各种在线资源都说有性能提升,但我没有找到任何概述何时不预编译的内容(除了你不能返回匿名类型的事实,所以没有投影)。

编辑:关于已编译查询的良好背景文章:预编译 LINQ 查询

确定何时(或不)在应用程序中预编译 Linq 查询的最佳实践是什么?

0 投票
3 回答
3138 浏览

c# - 从已编译的 linq 查询中获取生成的 sql

是否可以从已编译的 linq 查询中获取生成的 SQL?

0 投票
1 回答
1629 浏览

c# - 在 linq 编译查询上使用联合

我正在尝试找到将 union 与 linq 结合使用的最佳方法。

目前我必须编译具有相同签名的查询:

在我的存储库类上,我正在做一些链接:

但是有些事情告诉我联合应该在编译的查询中。像这样的东西:(这段代码不会编译)

有没有办法做到这一点?

0 投票
2 回答
1441 浏览

entity-framework-4.1 - 实体框架使用 CompiledQuery 但允许运行时过滤器值

我正在尝试使用实体框架重构繁琐的 LINQ-to-SQL 数据层。模型背后的数据库架构很大,一个典型的查询可能有 20 到 30 个包含。EF 会为此类查询生成大量 SQL 语句,迄今为止最大的是 4k 行,但它们仍然可以及时执行,所以这不是问题。

问题是 EF 需要很长时间,最多需要 4 或 5 秒来生成查询。为了克服这个问题,我使用了 CompileQuery。那么问题是现有的 L2S 数据层有很多过滤器可以根据用户输入应用于查询。这些过滤器中的单个值需要在运行时设置。

下面的代码不起作用,因为初始静态值被编译到查询中,但它演示了我正在尝试做的事情。

有什么方法可以在编译的查询中包含我的过滤器表达式,并且能够在执行查询时在过滤器表达式上设置值?

0 投票
1 回答
226 浏览

linq - linq 编译查询,类字段

如何 插入public var compiledQuery write Func < MYEntities,string, ???>

当我这样尝试时,我得到错误: 仅支持参数少的构造函数

0 投票
3 回答
1740 浏览

entity-framework - Linq-to-Entities 匹配已编译查询中整数列表中的 ID

我正在尝试找到一种方法来实现以下形式的 Linq-to-Entities 编译查询:

因为只能将标量参数传递给 CompiledQuery.Compile 上述失败。我正在尝试找到一些巧妙的方法来将逗号分隔的整数列表作为字符串传递,并在 L2E 查询中使用它,如下所示:

但由于不支持拆分功能,这不起作用。

关于如何实施的任何聪明的想法?

0 投票
1 回答
97 浏览

linq-to-sql - 重写 LinqToSql 查询以在没有 LoadWith 的情况下返回相同的实例

我正在调查 CompiledQuery 的性能,但 CompiledQuery 对 LoadWith 过敏。

此代码填充通过发出左连接 sql 查询加载的每个 Customer 实例的 Orders 属性。如何在没有 LoadWith 的情况下重写查询以获得相同的结果(客户已填充 Orders 属性)?

0 投票
1 回答
1243 浏览

vb.net - Linq to SQL Transaction Insert 然后 Select 真的,真的很慢

我正在开发一个系统,该系统基本上将数据从一组表迁移到另一组表。一切正常,但我决定使用事务而不是仅仅在部分完成的事情上失败。(也就是说,如果发生一些异常,我想回滚而不是迁移部分数据。)

我有一个服务(以 3 层架构方式,而不是 Web),它在数据访问层上开始事务。数据上下文在包含许多方法的数据访问类中共享。这些方法使用各种 LINQ-to-SQL 技术来更新/插入/删除。所有 LINQ-to-SQL “选择”都在 CompiledQueries 中。

“BeginTransaction”方法像这样启动一个事务:

基本上,我编写了一个测试,它启动一个事务,插入一个表,然后尝试检索刚刚插入的值,所有这些都在事务期间进行。我这样做是因为我想断言 insert 方法实际上试图插入。然后,在测试期间我会回滚,然后测试以确保新插入的值实际上并未提交到表中。测试看起来像这样:

所以,对于我的问题...

当测试到达“faciRetrieval1”步骤时,它会在那里停留大约 30-60 秒,然后再继续。我不确定为什么会这样。如果我在 SSMS 中的事务中运行相同的查询,它会立即发生。有没有人有任何想法?该数据库是 SQL Server 2008 SP1 (R2?)。