Случайное время ожидания команд EF - PullRequest
0 голосов
/ 17 мая 2019

У меня есть две программы и использую базу данных для отправки сообщений между ними. поэтому я должен активно проверять базу данных на предмет изменений. с менее чем 100 записями, случайно моя программа не может запросить базу данных и выдать Timeout Exception!

Это приложение Win Form, использующее Entity Framework 6 с .Net 4.6.1 и c #. Я использую фоновый рабочий, чтобы проверять базу данных и делать вещи.

private void Bg_DoWork(object sender, DoWorkEventArgs e)
{
    do
    {
       try
       {
           var req = context.Requests.FirstOrDefault(x => x.Status == RequestStatus.NotProccesed);
           if (req != null)
           {
               req.Status = RequestStatus.InProccess;
               context.SaveChanges();
               Task.Factory.StartNew((requestObj) =>
               {
                   //Do the Stuff...
               }, req);
            }
            Thread.Sleep(200);
        }
        catch (Exception ex)
        {
            Console.WriteLine(ex);
        }
    } while (!bg.CancellationPending);
}

случайно я получаю тайм-аут SQLServer в функциях «FirstOrDefault» или «SaveChanges».

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