Kin*_*n2k 5 c# linq nhibernate timeout command-timeout
有人知道设置UnderlyingCriteria何时使用的方法Session.Query?
我正在尝试为一个特定查询设置更严格的命令超时(或查询超时),我试图避免在会话中的连接或其他查询上添加该约束.
我发现在旧QueryOver功能中你可以使用这样的东西
// QueryOver returns a IQueryOver<T,T> an nHibernate class 
// with access to UnderlyingCriteria
var query = Session.QueryOver<Puppy>();
query.UnderlyingCriteria.SetTimeout(120); 
Run Code Online (Sandbox Code Playgroud)
问题在于它是旧的,有缺陷的,只是有一大堆功能问题.
使用Query返回IQueryable<T>
 var query = (from c in Session.Query<Puppy>());
Run Code Online (Sandbox Code Playgroud)
IQueryable 是一个MS类,没有明显的命令超时访问权限等.
另一种选择是以某种方式为所有命令设置会话命令超时,此时,然后恢复为默认值,但我没有看到任何公共机制来执行此操作,除了先设置命令超时并将其保留,比较如何为NHibernate LINQ语句设置超时
没关系,在 Nhibernate 的单元测试中找到了一个例子,他们为 IQueryable 添加了一些扩展方法。
var query = (from c in Session.Query<Puppy>()).Timeout(12);
Run Code Online (Sandbox Code Playgroud)
        |   归档时间:  |  
           
  |  
        
|   查看次数:  |  
           5084 次  |  
        
|   最近记录:  |