Ich verwende Fluent NHibernate für meine ORM. Dabei versuche ich, die NHibernate LINQ-Syntax zu verwenden, um eine Reihe von Daten mit der Macht von LINQ zu holen. Der Code, den ich habe, funktioniert und wird korrekt ausgeführt, mit der Ausnahme, dass ein Timeout ausgelöst wird, wenn es länger als ungefähr 30 Sekunden dauert, um ausgeführt zu werden. Die Frage, die ich habe, ist, wie verlängere ich die Standard-30-Sekunden-Timeout für LINQ-Anweisungen über NHibernate?Wie Zeitüberschreitung für NHibernate LINQ-Anweisung festlegen
ich bereits die Beiträge here, here und here aber die ersten beiden der Datacontext der Timeout-Eigenschaft auf Einstellung beziehen gesehen haben, die hier nicht gilt, und die dritte bezieht sich das Timeout in XML zu Einstellung, die auch nicht zutrifft weil ich Fluent NHibernate verwende, um das XML on the fly zu generieren. Nicht nur das, aber die Post ist 2 Jahre alt und Fluent NHibernate hat sich seitdem geändert.
Mit den ICriteria-Objekten und sogar HQL kann ich das Timeout angeben, aber das ist hier nicht das Ziel. Ich würde gerne wissen, wie man das gleiche Timeout setzt und LINQ benutzt.
Beispielcode:
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;
}
Dieser Code (wo Aussage keine Rolle spielt) eignen sich für alle Zwecke außer wenn ein Timeout auftritt.
Jede Hilfe wird geschätzt. Danke im Voraus!
Überprüfen Sie die Antwort von Kingpin2k. Hat super für mich gearbeitet. –