作者: | 来源:互联网 | 2023-09-24 18:30
如何使用Session.Query设置NhibernateLINQ命令超时是否有人知道在使用Session.Query时设置UnderlyingCriteria方法?我正在尝试为一
如何使用Session.Query设置Nhibernate LINQ命令超时
是否有人知道在使用Session.Query
时设置UnderlyingCriteria
方法?
我正在尝试为一个特定查询设置更严格的命令超时(或查询超时),我试图避免在会话中的连接或其他查询上添加该约束。
我在旧的QueryOver
function中找到了你可以使用的东西
// QueryOver returns a IQueryOver an nHibernate class // with access to UnderlyingCriteria var query = Session.QueryOver(); query.UnderlyingCriteria.SetTimeout(120);
问题在于它是旧的,有缺陷的,只是有一大堆function问题。
使用Query
返回IQueryable
var query = (from c in Session.Query());
IQueryable
是一个MS类,没有明显访问命令超时等。
另一种选择是以某种方式为所有命令设置会话命令超时,然后恢复到默认值,但我没有看到任何公共机制来执行此操作,除了先设置命令超时并将其保留,比较如何为NHibernate LINQ语句设置超时
没关系,在Nhibernate的unit testing中找到了一个例子,他们为IQueryable添加了一些扩展方法。
上述就是C#学习教程:如何使用Session.Query设置Nhibernate LINQ命令超时分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注—编程笔记
var query = (from c in Session.Query()).Timeout(12);