views:

288

answers:

2

How do I increase the timeout in NHibernate Linq To Sql?

Not the Connection Timeout but the ado command timeout.

using (ISession session = NHibernateHelper.OpenSession(NHibernateHelper.Databases.CarrierCDR))
  using (session.BeginTransaction(IsolationLevel.ReadUncommitted))
  {
   lCdrs = (from verizon in session.Linq<Domain.Verizon>()
             where verizon.Research == true
             && verizon.ReferenceTable == null
             orderby verizon.CallBillingDate descending 
              select verizon).ToList();
}
A: 

The only mention of a command timeout parameter in all of fluent nhibernate's source code is in a FirebirdConfiguration object. Which configures the application for the firebird database, which you are probably not using. I would suggest playing with your configuration objects, and consulting your database's connection string reference.

The Raw function in the PersistenceConfiguration may allow you to access the properties you are looking for, like FirebirdConfiguration, you could add the line Raw("command_timeout", "444");, to where your configure nhibernate.

Mark Rogers
A: 

if you are configuring your NHibernate session with the web.config you can add this to the config:

<add key="hibernate.command_timeout" value="0" />
Richard
The problem is that this property isn't used for the actual command when Linq query is executed. It always timeouts after ~30 sec.
Groo