Mi comando sigue agotando el tiempo de espera, por lo que necesito cambiar el valor predeterminado del tiempo de espera del comando.
Lo he encontrado myDb.Database.Connection.ConnectionTimeout, pero lo es readonly.
¿Cómo puedo configurar el tiempo de espera del comando en Entity Framework 5 ?

Database.CommandTimeoutya no es de solo lecturaDatabase.Connection.ConnectionTimeout. De todos modos, diría queDatabase.CommandTimeoutes lo correcto en el caso de que su consulta sea de tiempo de espera (queSystem.Data.Entity.Core.EntityCommandExecutionExceptioncontiene una excepciónSystem.Data.SqlClient.SqlException: Timeout expired.).Respuestas:
Prueba esto en tu contexto:
Si desea definir el tiempo de espera en la cadena de conexión, use el
Connection Timeoutparámetro como en la siguiente cadena de conexión:Fuente: Cómo: definir la cadena de conexión
fuente
ObjectContexta este constructor, a veces los comandos de la consola PowerShell / NuGet fallarán de forma circular .Puedes usar
DbContext.Database.CommandTimeout = 180;Es bastante simple y no requiere yeso.
fuente
Fluent APIforma de EF.Mi contexto parcial se ve así:
Dejé
SetCommandTimeOutpúblico, por lo que solo modifico las rutinas que necesito tomar mucho tiempo (más de 5 minutos) en lugar de un tiempo de espera global.fuente
En el código de constructor generado debería llamar
OnContextCreated()Agregué esta clase parcial para resolver el problema:
fuente
Extendí la respuesta de Ronnie con una implementación fluida para que puedas usarla así:
dm.Context.SetCommandTimeout(120).Database.SqlQuery...fuente
Para la base de datos primero Aproach:
Todavía podemos configurarlo en un constructor, anulando la plantilla ContextName.Context.tt T4 de esta manera:
Database.CommandTimeout = 180;Es el cambio acutal.La salida generada es esta:
Si cambia su Modelo de base de datos, esta plantilla permanece, pero la clase actual se actualizará.
fuente
System.Configuration.ConfigurationManager.AppSettings["keyname"]@shasIgual que otras respuestas, pero como método de extensión:
fuente
Acabo de encontrarme con este problema y lo resolví actualizando el archivo de configuración de mi aplicación. Para la conexión en cuestión, especifique "Tiempo de espera de conexión = 60" (estoy usando la versión de Framework 5.0.0.0 de la entidad)
ConnectionTimeout Setting
fuente
Puedes usar este simple:
dbContext.Database.SetCommandTimeout(300);fuente