EF中的插入语句有时有效,有时无效

时间:2019-04-04 11:05:36

标签: c# entity-framework

我在一个控制器中有一个post方法,该方法将一些数据插入表中。当我在Web应用程序上执行与该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 :(得分:0)

好吧,问题在于,每隔3秒就有一个Windows服务运行,该服务会在表中查找数据并进行更新。我认为这有点锁定它,我将时间更改为10秒。谢谢大家的建议。