NHibernate LINQ 超时
NHibernate LINQ Timeout
我需要为 NHibernate LINQ 查询设置超时。事件虽然我已经编写了代码并且代码在运行时编译我得到错误
"Method not found: 'System.Linq.IQueryable`1<!!0> NHibernate.Linq.LinqExtensionMethods.Timeout(System.Linq.IQueryable`1<!!0>, Int32)
正在使用的版本是
`<package id="NHibernate" version="3.3.3.4001" targetFramework="net452" />`
代码看起来像这样
var gpq = (from spg in session.Query<Table1>()
join spgm in session.Query<Table2>()
on spg.Table1Key equals spgm.Table2Key join sp in session.Query<Table3>() on spgm.Table2ID equals sp.Table3ID orderby spg.Table1ID
select spg).Timeout(120).Distinct();
var groups = gpq.ToList();
有人可以告诉我做错了什么吗?
如果 Timeout()
returns 一个新的 IQueryable
,您需要将其分配或链接:
var gpq = (
from spg in session.Query<Table1>()
join spgm in session.Query<Table2>() on spg.Table1Key equals spgm.Table2Key
join sp in session.Query<Table3>() on spgm.Table2ID equals sp.Table3ID
orderby spg.Table1ID
select spg
).Distinct();
var groups = gpq.Timeout(120).ToList();
但是,查看源代码,Timeout()
方法中有一个 Obsolete
属性。它说使用 WithOptions()
方法代替:
var groups = qpq.WithOptions(options => options.SetTimeout(120)).ToList();
我需要为 NHibernate LINQ 查询设置超时。事件虽然我已经编写了代码并且代码在运行时编译我得到错误
"Method not found: 'System.Linq.IQueryable`1<!!0> NHibernate.Linq.LinqExtensionMethods.Timeout(System.Linq.IQueryable`1<!!0>, Int32)
正在使用的版本是
`<package id="NHibernate" version="3.3.3.4001" targetFramework="net452" />`
代码看起来像这样
var gpq = (from spg in session.Query<Table1>()
join spgm in session.Query<Table2>()
on spg.Table1Key equals spgm.Table2Key join sp in session.Query<Table3>() on spgm.Table2ID equals sp.Table3ID orderby spg.Table1ID
select spg).Timeout(120).Distinct();
var groups = gpq.ToList();
有人可以告诉我做错了什么吗?
如果 Timeout()
returns 一个新的 IQueryable
,您需要将其分配或链接:
var gpq = (
from spg in session.Query<Table1>()
join spgm in session.Query<Table2>() on spg.Table1Key equals spgm.Table2Key
join sp in session.Query<Table3>() on spgm.Table2ID equals sp.Table3ID
orderby spg.Table1ID
select spg
).Distinct();
var groups = gpq.Timeout(120).ToList();
但是,查看源代码,Timeout()
方法中有一个 Obsolete
属性。它说使用 WithOptions()
方法代替:
var groups = qpq.WithOptions(options => options.SetTimeout(120)).ToList();