修复了带有linq查询for for循环的变量

时间:2016-03-02 09:17:20

标签: c# entity-framework linq for-loop

我遇到了linq查询的问题我正在尝试从填充表中获取正确的值。我的for循环在每次迭代时将值保存到数据库,但是当我使用断点查看变量的值时,查询不会返回正确的结果。我的初始值是(10,20,10,12),并且在每次迭代时我希望它们减去3并将新值保存到正常工作的数据库但是当我在linq查询中查询这些值时它仍会带回来每次迭代的初始值(10,20,10,12),如何从数据库中获取正确的值?

for (int a = 0; a < copy; a++ )
        {
          var qtyRemaining = from row in db.ShipmentPackagesRemaining
                               where row.orderid.Equals(salesNum) && row.itemnumber == shipItemNum
                               select row;

            orderQty = qtyRemaining.First().qty_remaining;

            // loop through items in package
            if(orderRecord.qtyPerPack > 0)
            {
                if(orderRecord.qtyPerPack > orderQty)
                {
                    packQty = orderQty;
                }
                else
                {
                    packQty = orderRecord.qtyPerPack;
                }

                if (shipPackCheck.Count() == 0)
                {
                    // populate database for shipment packages
                    shipmentPack.id = shipPackId;
                    shipmentPack.shipmentid = shipNo.First().shipmentid;
                    shipmentPack.shipmenttype = "SO";
                    shipmentPack.partid = "Pack_Type1";
                    shipmentPack.grossweight = 0;
                    shipmentPack.nettweight = 0;
                    shipmentPack.actualweight = 0;
                    shipmentPack.olversionnumber = countQty;

                    db.shipmentpackages.Add(shipmentPack);
                }

                // populate shipment package items
                shipmentPackItem.packageid = shipPackId;
                shipmentPackItem.itemnumber = itemNo;
                shipmentPackItem.shipmentid = shipNo.First().shipmentid;
                shipmentPackItem.shipmentitemnumber = shipItemNum;
                shipmentPackItem.shipmenttype = "SO";
                shipmentPackItem.stockbatchid = stockBatchID;
                shipmentPackItem.quantity = packQty;
                shipmentPackItem.uom = partDetails.First().uom;
                shipmentPackItem.weight = partDetails.First().weight;
                shipmentPackItem.olversionnumber = 0;

                db.shipmentpackageitems.Add(shipmentPackItem);
                db.SaveChanges();
            }

}

0 个答案:

没有答案