среда, 14 января 2015 г.

EF ConnectionTimeOut

http://stackoverflow.com/questions/12788972/set-database-timeout-in-entity-framework

http://msdn.microsoft.com/ru-ru/library/system.data.objects.objectcontext.commandtimeout(v=vs.110).aspx

public class MyDatabase : DbContext
{
    public MyDatabase ()
        : base(ContextHelper.CreateConnection("Connection string"), true)
    {
        ((IObjectContextAdapter)this).ObjectContext.CommandTimeout = 180;
    }
}

<connectionStrings>

<add name="AdventureWorksEntities"
connectionString="metadata=.\AdventureWorks.csdl|.\AdventureWorks.ssdl|.\AdventureWorks.msl;
provider=System.Data.SqlClient;provider connection string='Data Source=localhost;
Initial Catalog=AdventureWorks;Integrated Security=True;Connection Timeout=60;
multipleactiveresultsets=true'" providerName="System.Data.EntityClient" />

</connectionStrings>

По умолчанию время ожидания для запросов объектов и операции SaveChanges определяется основным поставщиком соединений. Но это заданное по умолчанию время ожидания можно переопределить с помощью свойства CommandTimeoutобъекта ObjectContext, как показано в следующем примере.
// Specify a timeout for queries in this context, in seconds.
context.CommandTimeout = 120;
Необходимость в этом возникает, если применяется сложный запрос или если другие проблемы производительности становятся причиной того, что запросы или вызовы SaveChanges часто завершаются в связи с истечением времени ожидания.

Комментариев нет:

Отправить комментарий