Вставить оператор в EF иногда работает, иногда нет - PullRequest
0 голосов
/ 04 апреля 2019

У меня есть метод post в одном из моих контроллеров, который вставляет некоторые данные в таблицу. Когда я выполняю какое-либо действие, соответствующее этому методу публикации, в моем веб-приложении, он показывает тип ответа как 200 , но, к сожалению, не сохраняет никаких данных в таблице. У меня есть аналогичный метод, который отлично работает и сохраняет данные в другой таблице, но у меня есть проблема с этим конкретным методом post.

Также я проверяю следующее:

if (await _context.SaveChangesAsync()>0)
            return true;

Я действительно не понимаю, проблема здесь.

Ниже приведена функция, которая вставляет данные после проверки:

 public async Task<bool> AddToCartInBulk(List<EcomCart> 
  ecomCarts,List<TableName> ecomHoldLots, string status)
    {
        // Below is the code which adds the record
        for( int i = 0 ;i < ecomCarts.Count; i++)
        {
            ecomCarts[i].Status = status;
            await _context.TableName.AddAsync(ecomCarts[i]);
        } 

        // this is for other reason(not relevant to the issue)
        if(ecomHoldLots.Count > 0 && status == "Approved"){
        for(int i = 0 ; i < ecomHoldLots.Count;i++)
        {
           _context.Remove(ecomHoldLots[i]);
        } 
        }
        if (await _context.SaveChangesAsync()>0)
            return true; 
        return false;
    }

А ниже приведен код метода post, который вызывает указанную выше функцию вставки:

    .......
    ........
    var addtocartLotFromMapper = _mapper.Map<List<EcomCart>>(newList);
        var addtocartLotDone = await _repo.AddToCartInBulk(addtocartLotFromMapper, ecomHoldLots, AddToCartByUserDto[0].Status);
        return Ok();

Примечание. Это прекрасно работает, когда я работаю локально. Также есть служба окон, которая проверяет эту таблицу и записывает ее в соответствии с некоторыми условиями. Я думаю, что это блокирует вставку. Но раньше он работал нормально.

1 Ответ

0 голосов
/ 05 апреля 2019

Хорошо, проблема была в том, что каждые 3 секунды запускается служба Windows, которая ищет данные в таблице и обновляет их. Я думаю, что это несколько запирало, я изменил время на 10 секунд. Спасибо всем за предложения.

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