У меня есть ситуация, когда я копирую файлы в Azure
, и когда копирование завершается, я записываю информацию в базу данных и вызываю изменения сохранения.И поскольку у меня много файлов, которые необходимо скопировать, я создаю один поток на файл, поэтому эти потоки пытаются вызывать SaveChanges
независимо друг от друга.
foreach (var doc in docs)
{
var task = CopyEntireModelInCDNAsync(doc.DocId, user, oldUploadPath, newUploadPath);
taskList.Add(task);
}
resultList = await Task.WhenAll(taskList);
public async Task<ActionResultCDN> CopyEntireModelInCDNAsync(int docid,AspNetUser user,string oldUploadPath, string newUploadPath)
{
//some code here
await CDNManager.CopyBlobAsync(sourceUri, destinationUri);
MyDbc.SaveChanges();
}
Я получаю следующее внутреннее исключение SqlConnection does not support parallel transactions
Обновления находятся в одной таблице, но в разных строках.Есть ли способ реализовать это (возможно, используя уровни изоляции транзакций), чтобы несколько SaveChanges
не конфликтовали.