我使用功能NHibernate我的ORM。 在这方面,我想使用NHibernate的LINQ的语法与LINQ的权力来获取一组数据。 该代码我的作品和不同之处在于,如果时间超过大约30秒,运行的时间更长超时被抛出正确执行。 我的问题是我如何扩展默认为30秒超时为通过NHibernate的LINQ语句?
我已经看到了帖子在这里 , 在这里 ,并在这里 ,但前两个指设置的DataContext的超时属性,在这里不适用,第三是指设置在XML,这也并不适用超时,因为我使用连贯NHibernate到动态生成的XML。 不仅如此,但后为2岁,因为功能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;
}
此代码(where语句无所谓)适用于除非发生超时所有目的。
任何帮助表示赞赏。 提前致谢!