ORMにFluentNHibernateを使用しています。そうすることで、NHibernate LINQ構文を使用して、LINQの機能を備えたデータセットをフェッチしようとしています。私が持っているコードは、実行に約30秒以上かかる場合にタイムアウトがスローされることを除いて、正しく機能して実行されます。私が持っている質問は、NHibernateを介してLINQステートメントのデフォルトの30秒のタイムアウトをどのように延長するかです。
ここ、ここ、およびここでの投稿はすでに見ましたが、最初の2つは、ここでは適用されないDataContextのTimeoutプロパティの設定を参照し、3つ目は、XMLでのタイムアウトの設定を参照しています。これも、使用しているため適用されません。その場でXMLを生成するための流暢なNHibernate。それだけでなく、ポストは2歳で、FluentNHibernateはそれ以来変わっています。
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;
}
このコード(ステートメントは重要ではありません)は、タイムアウトが発生する場合を除いて、すべての目的で機能します。
どんな助けでも大歓迎です。前もって感謝します!