Sto utilizzando Fluent NHibernate per il mio ORM. In tal modo sto cercando di utilizzare la sintassi LINQ NHibernate per recuperare un insieme di dati con la potenza di LINQ. Il codice che ho funziona e viene eseguito correttamente, con l'eccezione che viene generato un timeout se richiede più tempo di esecuzione di circa 30 secondi. La domanda che ho è come faccio ad estendere il timeout di 30 secondi predefinito per le istruzioni LINQ tramite NHibernate?Come impostare il timeout per l'istruzione LINQL di NHibernate
Ho già visto i messaggi here, here e here ma i primi due si riferiscono a impostare la proprietà Timeout del DataContext, che non si applica qui, e la terza si riferisce alla impostazione del timeout in XML, che inoltre non si applica perché sto usando Fluent NHibernate per generare l'XML al volo. Non solo, ma il post ha 2 anni e il Fluent NHibernate è cambiato da allora.
Con gli oggetti ICriteria e persino HQL posso specificare il timeout, tuttavia non è questo l'obiettivo. Mi piacerebbe sapere come impostare lo stesso timeout e usare LINQ.
codice Esempio:
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;
}
Questo codice (in cui dichiarazione non ha importanza) funziona a tutti gli effetti, tranne in cui si verifica un timeout.
Qualsiasi aiuto è apprezzato. Grazie in anticipo!
Controlla la risposta con kingpin2k. Ha funzionato alla grande per me. –