Per affrontare timeout SQL che sto cercando di utilizzare SqlAzureExecutionStrategy (https://msdn.microsoft.com/en-us/data/dn456835.aspx)Come utilizzare SqlAzureExecutionStrategy e "nolock"
Il problema che sto funzionando in è che impedisce "le operazioni avviate utente" che sembrano essere la raccomandata modo di implementare "con (nolock)" in EF (http://www.hanselman.com/blog/GettingLINQToSQLAndLINQToEntitiesToUseNOLOCK.aspx, NOLOCK with Linq to SQL).
esempio di codice
public AspnetUser GetAspnetUserByUserName(string userName)
{
using (var tx = new TransactionScope(TransactionScopeOption.Required, new TransactionOptions() { IsolationLevel = IsolationLevel.ReadUncommitted }))
{
return context.AspnetUsers.Where(x => x.UserName == userName).FirstOrDefault();
}
}
tiri errore
La strategia di esecuzione configurato 'SqlAzureExecutionStrategy' non supporta le transazioni utente iniziati. Vedere http://go.microsoft.com/fwlink/?LinkId=309381 per ulteriori informazioni.
Ho visto le risposte che dicono di spegnere lo SqlAzureExecutionStrategy su una base per chiamata, ma che avrebbe vanificato l'obiettivo di utilizzarlo, se tutta la mia letture ignorato la strategia. È possibile avere sia "NoLock" che SqlAzureExecutionStrategy
cercherò di verificare ciò, questa settimana per farvi sapere come funziona grazie –
l'unica cosa che io non sono chiare su questo è il motivo per cui La sospensione deve essere pubblica. Anche dare una prova ora, sembra più pulito della versione MSDN. –
Funziona bene. Sospensione aggiornata per essere privata dalla mia parte, ma questa è un'implementazione molto carina, grazie per quello. –