Para la base de datos primero Aproach:
Todavía podemos configurarlo en un constructor, anulando la plantilla ContextName.Context.tt T4 de esta manera:
<#=Accessibility.ForType(container)#> partial class <#=code.Escape(container)#> : DbContext
{
public <#=code.Escape(container)#>()
: base("name=<#=container.Name#>")
{
Database.CommandTimeout = 180;
<#
if (!loader.IsLazyLoadingEnabled(container))
{
#>
this.Configuration.LazyLoadingEnabled = false;
<#
}
Database.CommandTimeout = 180;
Es el cambio acutal.
La salida generada es esta:
public ContextName() : base("name=ContextName")
{
Database.CommandTimeout = 180;
}
Si cambia su Modelo de base de datos, esta plantilla permanece, pero la clase actual se actualizará.
Christian Gollhardt
fuente
Database.CommandTimeout
ya no es de solo lecturaDatabase.Connection.ConnectionTimeout
. De todos modos, diría queDatabase.CommandTimeout
es lo correcto en el caso de que su consulta sea de tiempo de espera (queSystem.Data.Entity.Core.EntityCommandExecutionException
contiene una excepciónSystem.Data.SqlClient.SqlException: Timeout expired.
).