dla bazy pierwszego Aproach:
Nadal możemy ustawić go w konstruktorze, poprzez uruchamianie Pomocnicze ContextName.Context.tt T4 Szablon ten sposób:
<#=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;
jest zmiana acutaly.
Wygenerowany wyjście to:
public ContextName() : base("name=ContextName")
{
Database.CommandTimeout = 180;
}
Jeśli zmienisz bazę danych model ten szablon pozostaje, ale właściwie klasa zostanie zaktualizowany.
FYI, na EF6, 'Database.CommandTimeout' nie jest już tylko do odczytu – itsho
@itsho Mówił on o' Database.Connection.ConnectionTimeout'. W każdym razie, powiedziałbym, że 'Database.CommandTimeout' jest właściwą rzeczą w przypadku, gdy twoje zapytanie jest time-outowe (wyjątek' System.Data.Entity.Core.EntityCommandExecutionException' zawierający 'System.Data.SqlClient.SqlException: Timeout minął. '). –
Możliwy duplikat [Entity Framework Timeouts] (http://stackoverflow.com/questions/6232633/entity-framework-timeouts) –