Questa eccezione è avvenuta qui:
public void updateAccount(CommonLayer.Account account)
{
Entity.SaveChanges();
}
Stack Trace:
[SqlException (0x80131904): la nuova transazione non è consentita perché nella sessione sono presenti altri thread.] System.Data.SqlClient.SqlConnection.OnError (eccezione SqlException, booleano breakConnection, Action
1 wrapCloseInAction) +1753986 System.Data.SqlClient.SqlInternalConnection.OnError(SqlException exception, Boolean breakConnection, Action
1 wrapCloseInAction) +5296058 System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning (stato TdsParserStateObjectObj, caller booleanoHasConnectionLock, Boolean asyncClose) +558 System.Data.SqlClient.TdsParser.TryRun (RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader datastream, bulkCopyHandler BulkCopySimpleResultSet, stateObj TdsParserStateObject, booleano e dataReady) 1682 System.Data.SqlClient.TdsParser.Run (runBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader datastream, bulkCopyHandler BulkCopySimpleResultSet, stateObj TdsParserStateObject) +69 System.Data.SqlClient. TdsParser.TdsExecuteTransactionManagerRequest (Byte [ ] Tampone, richiesta TransactionManagerRequestType, String transactionName, TransactionManagerIsolationLevel isolivello, Int32 timeout, transazione SqlInternalTransaction, stateObj TdsParserStateObject, booleano isDelegateControlRequest) 796 System.Data.SqlClient.SqlInternalConnectionTds.ExecuteTransactionYukon (TransactionRequest transactionRequest, String transactionName, IsolationLevel iso, SqlInternalTransaction internalTransaction, booleano isDelegateControlRequest ) +395 System.Data.SqlClient.SqlInternalConnectionTds.ExecuteTransaction (TransactionRequest transactionRequest, String name, IsolationLevel iso, SqlInternalTransaction internalTransaction, Boolean isDelegateControlRequest) +137 System.Data.SqlClient.SqlInternalConnection.BeginSqlTransaction (IsolationLevel iso, String transactionName) +230 System. 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
Perché sta succedendo?
Avevo bisogno di più informazioni perché ora voglio essere un'applicazione web o desktop. Se vuoi usare EDM dovresti usare using () code block. Per esempio:
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();
}
}