C# 使用NHibernate的多标准/未来中的超时异常
我在SQLServer2008的ASP.NETC#应用程序中使用了NHibernate3.3.3C# 使用NHibernate的多标准/未来中的超时异常,c#,asp.net,sql-server,nhibernate,C#,Asp.net,Sql Server,Nhibernate,我在SQLServer2008的ASP.NETC#应用程序中使用了NHibernate3.3.3 DetachedCriteria _pageCriteria = CriteriaTransformer.Clone(criteria) .SetMaxResults(maxResult) .SetFirstResult(firstResult); _recordCount= _countCriteria.GetExecutableCriteria(
DetachedCriteria _pageCriteria = CriteriaTransformer.Clone(criteria)
.SetMaxResults(maxResult)
.SetFirstResult(firstResult);
_recordCount= _countCriteria.GetExecutableCriteria(session).FutureValue<int>();
var _pageCriteriaFuture = _pageCriteria.GetExecutableCriteria(session).Future<T>();
_pageCriteriaFuture.ToList();
关键是,如果我尝试单独执行这些步骤:
_recordCount= _countCriteria.GetExecutableCriteria(session).FutureValue<int>().Value;
\u recordCount=\u countCriteria.GetExecutableCriteria(会话).FutureValue().Value;
它像沙姆一样工作
为什么,如果我尝试在同一状态下执行它们,我会得到这个错误
是锁的问题吗?我还尝试在MSS management studio中执行相同的两个查询命令,但没有得到任何错误 这个原则,你以后使用的查询对我有用。不仅是在我试图重复这个问题的时候,甚至是在日常生活中 我也经历过同样的例外。这是因为有两个赛斯开了。第一个在事务中运行,使用update/insert-notcommitted锁定表。第二个是询问结果(未来),超时停止了它。所有这些都在同一个请求中(可怕) 注意:从片段(我知道它可能只是一个快速草稿,但以防万一,它是复制粘贴),我不确定命名约定 (是外部范围中的
标准
,是DAO的\u记录计数
成员
类,因为“var\u pageCriteriaFuture”是本地的
变量,前缀为\u
。\u countCriteria
显示在
没有初始化的代码段
这一切都可能意味着,每个部分都是分离的,其中一些部分可能已经触发另一个会话的打开/关闭。因此,我建议,打开log4net和NHIberante的完整日志,并在事务打开时进行检查。可能会有答案。分析此问题的最佳方法是通过Nhibernate和c记录您的会话见鬼,哪里出了问题。
_recordCount= _countCriteria.GetExecutableCriteria(session).FutureValue<int>().Value;