Cette exception s'est produite ici:
public void updateAccount(CommonLayer.Account account)
{
Entity.SaveChanges();
}
Trace de la pile:
[SqlException (0x80131904): la nouvelle transaction n'est pas autorisée, car d'autres threads sont en cours d'exécution dans la session.] System.Data.SqlClient.SqlConnection.OnError (exception SqlException, Boolean breakConnection, Action
1 wrapCloseInAction) +1753986 System.Data.SqlClient.SqlInternalConnection.OnError(SqlException exception, Boolean breakConnection, Action
même rang SqlCommand cmdHandler, SqlDataReader DATASTREAM, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj, Boolean & dataReady) 1682 System.Data.SqlClient.TdsParser.Run (runBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader DATASTREAM, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj) 69 System.Data.SqlClient. TdsParser.TdsExecuteTransactionManagerRequest (Byte [ tampon], demande de TransactionManagerRequestType, String transactionName, TransactionManagerIsolationLevel isoLevel, temporisation Int32, transaction SqlInternalTransaction, TdsParserStateObject stateObj, Boolean isDelegateControlRequest) 796 System.Data.SqlClient.SqlInternalConnectionTds.ExecuteTransactionYukon (TransactionRequest transactionRequest, String transactionName, IsolationLevel iso, SqlInternalTransaction internalTransaction, Boolean isDelegateControlRequest ) +395 System.Data.SqlClient.SqlInternalConnectionTds.ExuteTransaction (TransactionRequest transactionRequest, Nom de chaîne, IsolationLevel iso, SqlInternalTransaction, Data.SqlClient.SqlInternalConnection.BeginTransaction (isolationLevel iso) +12 System.Data.SqlClient.SqlConnection.BeginDbTransaction (IsolationLevel isolationLevel) +60 System.Data.Commo n.DbConnection.BeginTransaction (IsolationLevel isolationLevel) +10 System.Data.EntityClient.EntityConnection.BeginDbTransaction (IsolationLevel isolationLevel) +83
Pourquoi cela arrive-t-il?
J'avais besoin de plus d'informations parce que je veux maintenant, c'est votre application web ou desktop Si vous voulez utiliser EDM, vous devriez utiliser un bloc de code using (). Par exemple:
public void SaveUser(User oldUser)
{
using (MyEntity myEntity= new MyEntity ())
{
var user = myEntity.Users.Where(u => u.UserId == oldUser.UserId).Single();
user.UserName = oldUser.UserName;
// and other changes
myEntity.SaveChanges();
}
}