Тупик при добавлении строки через Entity Framework - PullRequest
0 голосов
/ 22 мая 2019

У меня есть следующий унаследованный код, который находится в наших средах Dev, Test и Prod.По какой-то причине, на прошлой неделе, сейчас это вызывает сбои в автоматизации или контроле качества.В ходе дальнейших исследований в нашем APM я обнаружил, что последовательно получаю следующее исключение в нашей среде разработки, но никак не в Test или Prod.Не уверен, почему он внезапно отключил автоматизацию контроля качества.

System.Data.SqlClient.SqlException -
Транзакция (ID процесса 88) заблокирована при блокировке |ресурсы буфера связи с другим процессом и были выбраны в качестве жертвы тупика.Перезапустите транзакцию.

Вопрос: этот код плохо написан?Я не понимаю, как добавление строки может привести к тупику.

// TrackEntities: DbContext
using (var dbContext = new TrackEntities())
{   
    ErrorAudit audit = new ErrorAudit
    {
        Error = error,
        CustomerNumber = entry.CustomerNumber.ToString(CultureInfo.InvariantCulture),
        RequestContextId = entry.RequestContextId,
        SessionId = entry.SessionId,
        Username = entry.Username,
        Timestamp = entry.Timestamp
    };

    dbContext.ErrorAudits.Add(audit);
    dbContext.SaveChanges();
}

Версия SQL Server:

SELECT @@VERSION 

Microsoft SQL Server 2016 (RTM-GDR) (KB4019088) - 13.0.1742.0 (X64) 
Jul  5 2017 23:41:17 
Copyright (c) Microsoft Corporation
Developer Edition (64-bit) on Windows Server 2012 R2 Datacenter 6.3 <X64> (Build 9600: ) (Hypervisor)

Вот схема тупиковой ситуации enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...