UnderlyingCriteria
を使用するときに を設定する方法を知っている人はいSession.Query
ますか?
1 つの特定のクエリに対して、より制限的なコマンド タイムアウト (またはクエリ タイムアウト) を設定しようとしています。セッション内の接続または他のクエリにその制約を追加しないようにしています。
古い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 ステートメントのタイムアウトを設定する方法