有人知道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);
问题是它很旧,有问题,而且有很多功能问题。
使用Query
返回一个IQueryable<T>
var query = (from c in Session.Query<Puppy>());
IQueryable
是一个 MS 类,对命令超时等没有明显的访问权限。
另一种选择是以某种方式为所有命令设置会话命令超时,然后恢复为默认值,但我没有看到任何这样做的公共机制,除了预先设置命令超时并保留它,比如如何为 NHibernate LINQ 语句设置超时