如何设置 NHibernate LINQ 语句的超时

2024-04-08

我正在使用 Fluent NHibernate 作为我的 ORM。为此,我尝试使用 NHibernate LINQ 语法通过 LINQ 的强大功能来获取一组数据。我的代码可以正常工作并执行,但如果运行时间超过大约 30 秒,则会引发超时。我的问题是如何通过 NHibernate 延长 LINQ 语句的默认 30 秒超时?

我已经看过帖子了here https://stackoverflow.com/questions/12406717/linq-timeout-timeout-expired, here https://stackoverflow.com/questions/11821236/sql-timeout-expired, and here https://stackoverflow.com/questions/2519754/setting-linq-to-nhibernate-ado-command-timeout但是前两个是指设置 DataContext 的 Timeout 属性,这在这里不适用,第三个是指在 XML 中设置超时,这也不适用,因为我正在使用 Fluent NHibernate 动态生成 XML。不仅如此,该帖子已有 2 年历史,Fluent NHibernate 自此发生了变化。

使用 ICriteria 对象甚至 HQL,我可以指定超时,但这不是这里的目标。我想知道如何设置相同的超时并使用 LINQ。

示例代码:

    using (var session = SessionFactory.OpenSession())
    using (var transaction = session.BeginTransaction())
    {
        var query = (from mem in session.Query<Member>()
                     select mem);
        query = query.Where({where statement});
        int start = (currentPage - 1) * max);
        if (start > 0)
            query = query.Skip(start).Take(max);
        else
            query = query.Take(max);

        var list = query.ToList();
        transaction.Commit();
        return list;
    }

此代码(其中语句无关紧要)适用于除发生超时之外的所有用途。

任何帮助表示赞赏。提前致谢!


我最终为 Fluent NHibernate 配置设置了命令超时。这样做的缺点是它为我的所有数据访问调用设置了超时,而不仅仅是一个。

示例代码:

.ExposeConfiguration(c => c.SetProperty("command_timeout", (TimeSpan.FromMinutes(10).TotalSeconds).ToString()))

我发现这个建议来自this https://groups.google.com/forum/?fromgroups=#!topic/fluent-nhibernate/gi5O00uFYzE网站。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何设置 NHibernate LINQ 语句的超时 的相关文章

  • 根据列属性值获取属性值

    List
  • ListView.SelecctedItems 显示 0 个选定项 [关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 好吧 让我以更好的方式解释我的要求很
  • 如何按字段对列表进行排序

    美好的一天 4 你们大家 我有一个对象列表 我的对象喜欢 Product iPhone Category SmartPhone Product HP Category PC Product HTC Category SmartPhone 我
  • 如何为 asp.net MVC 5 配置 StructureMap

    我遇到以下错误 我的设置与 asp net mvc 4 类似 没有为此对象定义无参数构造函数 描述 安 当前网页执行期间发生未处理的异常 要求 请查看堆栈跟踪以获取有关的更多信息 错误及其在代码中的起源 异常详细信息 System Miss
  • 在.rdlc报告的底部设置一个文本框

    我在 rdlc 报告中使用 tablix 有一个文本框 其中包含文本 签名 我想将此文本框放置在报告最后一页的底部 就在页脚之前 我已经用谷歌搜索了这个解决方案 但没有找到满意的结果 我的环境是VS2010 framework 4 0 有什
  • 如何使用C#在asp.net中下载xml文件

    我正在使用网络应用程序ASP NET 与 MVC3 我是 mvc3 的新手 我的网页上有一个下载按钮 当我要单击下载按钮时 我希望能够打开该 XML 文件 我尝试过一些代码更改动作结果但我没有打开文件 通过使用下面提到的代码 我收到一个下载
  • 如何在清除排序描述后删除wpf网格排序箭头

    我单击网格标题对列进行排序 然后单击 重置 按钮以通过其集合视图清除排序描述 但排序箭头图标仍然保留在标题中 如何去除它 我在尝试弄清楚如何完全清除网格中的排序时遇到了这个问题 感谢 krishnaaditya 回答如何清除标题中的排序箭头
  • 从同一个类中的另一个构造函数调用构造函数

    我有一个带有两个构造函数的类 C 这是代码片段 public class FooBar public FooBar string s constructor 1 some functionality public FooBar int i
  • MVC3 Controller 文件夹不会出现在 URL 中

    这只是一个例子 我不知道如何让它工作 在我的 MVC3 控制器文件夹中 如果我添加一个名为 Admin 的新文件夹 并添加一个带有操作 Index 的控制器 News 则当您尝试打开该 url 404 时 您会收到服务器错误 http ur
  • 从值获取键 - Dictionary>

    我无法通过指定值来获取密钥 我实现这一目标的最佳方法是什么 var st1 new List
  • SecurityAction.RequestMinimum 在 .Net 4.0 中已过时

    最近 我们的 Net 客户端库正在升级以针对 Net 4 0 进行编译 将目标框架更改为4 0后 应用程序出现一些编译错误 In AssemblyInfo cs assembly SecurityPermission SecurityAct
  • 使用 TFS API 在单个查询中检索工作项及其链接的工作项

    有谁知道是否可以检索工作项目及其列表链接的工作项使用 TFS API Web 服务从 TFS 进行一趟 目前 我们必须对第一次调用期间进行的每个工作项进行第二次调用 并且引入了性能问题 如果这不可能 是否有办法查看链接工作项的类型而不检索它
  • 如何在asp.net C#中从http重定向到https并将其设为网站的默认版本

    如何在asp net c 中从http重定向到https 我已经安装了https证书现在我想将https设置为我的网站的默认版本 iam使用windows server 2008 R2 asp net C 4 0 您是否正在寻找这样的东西
  • 在 C# 中替换部分文件名

    我有一个文件夹 pdf文件 在大多数文件的名称中 我想用另一个字符串替换特定字符串 这是我写的 private void btnGetFiles Click object sender EventArgs e string dir tbGe
  • 为什么表达式树不能包含命名参数规范?

    使用 AutoMapper 我找到了一个非常适合命名参数的地方 ForMember s gt s MyProperty opt gt opt MapFrom s gt BuildMyProperty s isAdvanced false 但
  • 如何重写List.Add方法?

    目前我有一个错误日志记录类 如下所示 public class Log public enum LogTypes Info 1 Error 2 Warning 3 public string Message get set public L
  • 从任务并行库更新 ProgressBar UI 对象

    基本上我想更新 FormMain WindowsForm 上的 ProgressBar UI 对象 我正在使用 NET 4 0 以下是 Form1 Designer cs 中的代码 namespace ProgressBarApp publ
  • 如何实现快捷键的键盘处理程序cefSharp

    我正在构建一个用于浏览网页的 Windows 应用程序cefSharp 我需要在该应用程序中实现一些快捷键 任何人都可以告诉我如何实现此功能 Ex ctrl tab move to next tab 我能够跟踪用户是否按下任何单个键 但无法
  • 为什么这个字符串用AesCryptoServiceProvider第二次解密时不相等?

    我在 C VS2012 NET 4 5 中的文本加密和解密方面遇到问题 具体来说 当我加密并随后解密字符串时 输出与输入不同 然而 奇怪的是 如果我复制加密的输出并将其硬编码为字符串文字 解密就会起作用 以下代码示例说明了该问题 我究竟做错
  • C# 动态/expando 对象的深度/嵌套/递归合并

    我需要在 C 中 合并 2 个动态对象 我在 stackexchange 上找到的所有内容仅涵盖非递归合并 但我正在寻找能够进行递归或深度合并的东西 非常类似于jQuery 的 extend obj1 obj2 http api jquer

随机推荐

  • 从变量表复制数据

    我一直在尝试做一份报告并创建一个宏来将数据从一个文件复制到另一个文件 我不知道如何复制数据 因为我需要从中获取数据的表各不相同 示例一 我需要复制的是警报文本下方的内容 但在示例一中 我没有严重警报 但有些文件可能有 这同样适用于主要 次要
  • HitBTC api POST 请求,C#

    我知道如何执行 GET 请求 但 POST 不起作用 public string Order var client new RestClient http api hitbtc com var request new RestRequest
  • 在 RecyclerView.ViewHolder 中添加片段

    我有一个 RecyclerView ViewHolder 它将根据传递的对象的实例将不同的片段添加到其 FrameLayout 中 问题在于几乎不可能将片段添加到 ViewHolder 中 请注意 我已经从父级传递了 FragmentMan
  • LR(k) 到 LR(1) 语法转换

    我对以下内容感到困惑quote http en wikipedia org wiki LR parser Theory来自维基百科 换句话说 如果一种语言足够合理 允许 高效的单遍解析器 可以用 LR k 语法来描述 语法总是可以机械地转化
  • Mac OS:安装 vue cli 可以正常工作

    我安装了vue cli运行以下命令 npm install g vue cli Users me npm bin vue gt Users me npm lib node modules vue cli bin vue js Users m
  • 使用 AngularJS 和 Django REST 框架进行 Facebook 身份验证

    我正在开发一个 SPA 应用程序AngularJS http angularjs org 它使用Django https www djangoproject com 服务器的后端 我从 SPA 与服务器通信的方式是django rest f
  • 使用模板复制时如何在 XSLT 中创建元素

    我正在尝试在 XML 中创建一个元素 其中复制和修改了基本内容 我的 XML 是这样的
  • 从 PHP 连接到 SQL Server 时出现“Adaptive Server 不可用或不存在”错误

    我正在尝试使用 unixODBC 和 FreeTDS 从我的 Mac 连接到 SQL Server 2005 DB 正如我所概述的here http smgaweb com blog connecting remote ms sql ser
  • 添加引用对话框中缺少 GAC 程序集

    我有一个 Interop 程序集位于 GAC 中 Windows 资源管理器清楚地显示它列在C WINDOWS assembly文件夹 然而 当我尝试从 Visual Studio 添加对它的引用时 我在 添加引用 对话框中的任何位置都看不
  • 关于Scrum的两个问题[关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我有两个关于 Scrum 的相关问题 我们公司正在努力实施它 并且我们确信我们正在跨越障碍 这两个问题都是关于 完成意味着完成 1 对于正
  • 未捕获的引用错误:$ 未定义(匿名函数)$(function() 不起作用

  • Laravel - 更新日期的验证规则

    我有这个验证规则 event start gt required date after today 创建模型时一切都很好 这个日期不能早于今天 但是当用户尝试更新事件开始日期在今天之前并且弹出验证错误时 有没有办法调整此以更新模型 那么当用
  • 根据环境不同有不同的.eb扩展名

    我有 2 个独立的环境来管理我的应用程序 一个主要环境 带有负载均衡器的网络服务器 以及一个辅助环境 一个用于运行 crons 的小型层工作人员 我的 ebextensions 包含很多实例和负载均衡器配置 例如 01亚马逊 config
  • Flyway条件数据库迁移

    我正在尝试使用 Flyway 但我有一个不知道如何解决的场景 当我应用标准脚本时 我必须运行 V1 0 create table TAB1 sql 当我将脚本应用于 customer1 时 TAB1 表是一个视图 因此我必须运行 V1 0
  • 扩展 macOS Sierra 上的堆栈大小

    当我尝试使用命令扩展 macOS Sierra 上的堆栈大小时ulimit s unlimited终端打印下一条消息 bash ulimit 堆栈大小 无法修改限制 不允许操作 我也尝试使用sudo ulimit s unlimited但它
  • 如何从 Java 生成 ssh 兼容的 id_rsa(.pub)

    我正在寻找一种在 Java 中以编程方式创建 ssh 兼容的 id rsa 和 id rsa pub 文件的方法 我已经创建了密钥对 KeyPairGenerator generator generator KeyPairGenerator
  • 如何使用 Runtime.getRuntime().exec("cmd")

    在我的应用程序中 我尝试执行 SD 卡上存在的本机代码 File sdCard getExternalFilesDir null directory where native file is placed String nativeFile
  • 从 MySqlCommand 获取生成的 SQL 语句

    我正在使用 MySqlCommand 绑定参数 以便正确转义和清理数据 但我不会直接在生成它的计算机上执行命令 我需要将它作为原始 SQL 发送到另一台执行它的机器 现在 我正在手动循环参数并替换 CommandText 但这不会产生任何敏
  • symfony3 嵌入式控制器与表单

    我有一个嵌入式控制器 如 Symfony 网站上所述 http symfony com doc current templated embedding controllers html http symfony com doc curren
  • 如何设置 NHibernate LINQ 语句的超时

    我正在使用 Fluent NHibernate 作为我的 ORM 为此 我尝试使用 NHibernate LINQ 语法通过 LINQ 的强大功能来获取一组数据 我的代码可以正常工作并执行 但如果运行时间超过大约 30 秒 则会引发超时 我