inderpalsinghuppal Ответов: 1

Ошибка, связанная с Entity framework


An error occurred while updating the entries. See the inner exception for details. System.Data.Entity.Infrastructure.DbUpdateException: An error occurred while updating the entries. See the inner exception for details. ---> System.Data.Entity.Core.UpdateException: An error occurred while updating the entries. See the inner exception for details. ---> System.Data.SqlClient.SqlException: Execution Timeout Expired. The timeout period elapsed prior to completion of the operation or the server is not responding. ---> System.ComponentModel.Win32Exception: The wait operation timed out --- End of inner exception stack trace --- at System.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolean breakConnection, Action1 wrapCloseInAction)     at System.Data.SqlClient.SqlInternalConnection.OnError(SqlException exception, Boolean breakConnection, Action1 wrapCloseInAction) at System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj, Boolean callerHasConnectionLock, Boolean asyncClose) at System.Data.SqlClient.TdsParser.TryRun(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj, Boolean& dataReady) at System.Data.SqlClient.SqlCommand.FinishExecuteReader(SqlDataReader ds, RunBehavior runBehavior, String resetOptionsString, Boolean isInternal, Boolean forDescribeParameterEncryption) at System.Data.SqlClient.SqlCommand.RunExecuteReaderTds(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, Boolean async, Int32 timeout, Task& task, Boolean asyncWrite, Boolean inRetry, SqlDataReader ds, Boolean describeParameterEncryptionRequest) at System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method, TaskCompletionSource1 completion, Int32 timeout, Task& task, Boolean& usedCache, Boolean asyncWrite, Boolean inRetry)     at System.Data.SqlClient.SqlCommand.InternalExecuteNonQuery(TaskCompletionSource1 completion, String methodName, Boolean sendToPipe, Int32 timeout, Boolean& usedCache, Boolean asyncWrite, Boolean inRetry) at System.Data.SqlClient.SqlCommand.ExecuteNonQuery() at System.Data.Entity.Infrastructure.Interception.DbCommandDispatcher.b__0(DbCommand t, DbCommandInterceptionContext1 c)     at System.Data.Entity.Infrastructure.Interception.InternalDispatcher1.Dispatch[TTarget,TInterceptionContext,TResult](TTarget target, Func3 operation, TInterceptionContext interceptionContext, Action3 executing, Action3 executed)     at System.Data.Entity.Infrastructure.Interception.DbCommandDispatcher.NonQuery(DbCommand command, DbCommandInterceptionContext interceptionContext)     at System.Data.Entity.Internal.InterceptableDbCommand.ExecuteNonQuery()     at System.Data.Entity.Core.Mapping.Update.Internal.DynamicUpdateCommand.Execute(Dictionary2 identifierValues, List1 generatedValues)     at System.Data.Entity.Core.Mapping.Update.Internal.UpdateTranslator.Update()     --- End of inner exception stack trace ---     at System.Data.Entity.Core.Mapping.Update.Internal.UpdateTranslator.Update()     at System.Data.Entity.Core.EntityClient.Internal.EntityAdapter.<update>b__2(UpdateTranslator ut)     at System.Data.Entity.Core.EntityClient.Internal.EntityAdapter.Update[T](T noChangesResult, Func2 updateFunction) at System.Data.Entity.Core.EntityClient.Internal.EntityAdapter.Update() at System.Data.Entity.Core.Objects.ObjectContext.b__35() at System.Data.Entity.Core.Objects.ObjectContext.ExecuteInTransaction[T](Func1 func, IDbExecutionStrategy executionStrategy, Boolean startLocalTransaction, Boolean releaseConnectionOnSuccess)     at System.Data.Entity.Core.Objects.ObjectContext.SaveChangesToStore(SaveOptions options, IDbExecutionStrategy executionStrategy, Boolean startLocalTransaction)     at System.Data.Entity.Core.Objects.ObjectContext.<>c__DisplayClass2a.<savechangesinternal>b__27()     at System.Data.Entity.SqlServer.DefaultSqlExecutionStrategy.Execute[TResult](Func1 operation) at System.Data.Entity.Core.Objects.ObjectContext.SaveChangesInternal(SaveOptions options, Boolean executeInExistingTransaction) at System.Data.Entity.Core.Objects.ObjectContext.SaveChanges(SaveOptions options) at System.Data.Entity.Internal.InternalContext.SaveChanges() --- End of inner exception stack trace --- at System.Data.Entity.Internal.InternalContext.SaveChanges() at System.Data.Entity.Internal.LazyInternalContext.SaveChanges() at System.Data.Entity.DbContext.SaveChanges()


Что я уже пробовал:

Все, от кода C# до SQL Profiler и т. д.

Member 13812021

Вы должны поместить некоторый код, чтобы мы могли видеть, что вызывает ошибку.

Dave Kreskowiak

Единственное, что кто-то может сказать вам из того, что вы опубликовали, - это то, что SQL-серверу потребовалось слишком много времени, чтобы закончить выполнение вашего запроса, что это такое. Никто не может сказать вам ничего больше, потому что вы показали запрос и код, который выдает ошибку.

Gerry Schmitz

Может быть, вы "накапливаете слишком много работы" (в памяти) перед "сохранением изменений".

EF не является заменой "ответственным вычислениям".

j snooze

вы можете попробовать увеличить свой тайм-аут, но мне кажется, что sql-код должен быть быстрее, поэтому я бы сосредоточился на том, чтобы убедиться, что он эффективен.

Maciej Los

Это вовсе не вопрос!

1 Ответов

Рейтинг:
2

Jinto Jacob

ошибка связана с таймаутом системы.вы можете увидеть это в сообщении об ошибке как

System.ComponentModel.Win32Exception: The wait operation timed out 


это просто означает, что sql занимает слишком много времени для выполнения вашего запроса и происходит тайм-аут.Может быть много причин, вызывающих выполнение команды в течение длительного времени, таких как длительно выполняемые задачи, давление памяти сервера, блокировка, другие узкие места ресурсов и т. д.:-. Только детальный взгляд на коды и данные может дать точную причину тайм-аута.

эта ссылка дает некоторые основы по этому вопросу..