n层架构中的SaveChanges问题



通常情况下,与MVC我使用db.savechanges()方法后,我做了一些进程。但是检查下面的代码,当我在每个循环中使用n层架构时,它会以这种方式插入,但我不想要它。我得先检查一下所有的项目。如果没有问题,我就把它们全部插入。

foreach (var item in mOrderList)
{
MOrder mOrder = new MOrder();
mOrder.StatusAdmin = false;
mOrder.Date = DateTime.Now;
mOrder.StatusMVendor = "Sipariş alındı.";
mOrder.HowMany = item.HowMany;
mOrder.MBasketId = item.MBasketId;
mOrder.MProductId = item.MProductId;
mOrder.MVendorId = item.MVendorId;
mOrder.WInvestorId = item.WInvestorId;
MProduct mprostock = _imProductService.GetMProductById(item.MProductId);
if (mprostock.Stock<=0)
{
return ReturnErrorAndSuccess(HttpStatusCode.NotFound, "MProduct", mprostock.Name + " ürününde stok kalmadığı için işlem tamamlanamadı.");
}
_imOrderService.InsertMOrder(mOrder);
}

你所要做的就是:

  • 首先你应该定义一个方法来获取mProductId的列表,然后返回MProduct的列表。

  • 之后,您应该检查是否有Stock<=0的记录,然后返回您的错误。-同样,对于插入,你应该定义一个方法来获取MOrder列表并返回适当的数据类型,例如布尔值。

    public List<MProduct> GetMProductByIds(List<MProductId> mProductId)
    {
    //getting record code
    }
    public bool AddMOrder(List<MOrder> mOrder)
    {
    //inserting record code
    }
    

最新更新