Używam Fluent NHibernate dla mojej ORM. W ten sposób próbuję użyć składni NHINbernate LINQ do pobrania zestawu danych z mocą LINQ. Kod, który działam i działa poprawnie z tym wyjątkiem, że zostanie wygenerowany timeout, jeśli trwa dłużej niż około 30 sekund. Mam pytanie, w jaki sposób mogę przedłużyć domyślny 30-sekundowy limit czasu dla instrukcji LINQ za pośrednictwem NHibernate?Jak ustawić limit czasu dla oświadczenia NHibernate LINQ
już widział posty here, here i here ale pierwsze dwa odnoszą się do ustawiania właściwości Timeout DataContext, która nie ma tu zastosowania, a trzeci odnosi się do ustawienia limitu czasu w formacie XML, który również nie ma zastosowania ponieważ używam Fluent NHibernate do generowania XML w locie. Nie tylko to, ale post ma 2 lata i Fluent NHibernate zmienił się od tego czasu.
Dzięki obiektom ICriteria, a nawet HQL mogę określić limit czasu, jednak nie jest to celem tutaj. Chciałbym wiedzieć, jak ustawić ten sam limit czasu i użyć LINQ.
Przykładowy kod:
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;
}
Ten kod (gdzie oświadczenie nie ma znaczenia) działa dla wszystkich celów z wyjątkiem gdy nastąpi przekroczenie limitu czasu.
Każda pomoc jest doceniana. Z góry dziękuję!
Sprawdź odpowiedź przez kingpin2k. Sprawdziło się doskonale dla mnie. –