我在MVC上做了一个项目,
这是我的库存表的样子:
我希望将FoodId
分组,并且必须在同一张桌子上更新相应的QuantityInStyock
。
以下是我的控制器的样子:
var add = (from m in db.Tbl_Inventory
where m.FoodId == pdtfid
select m.QuantityInStock).FirstOrDefault();
if (add == 0)
{
In.FoodId = product.FoodId;
In.QuantityInStock = In.QuantityInStock + product.ProductQuantity;
db.Tbl_Inventory.Add(In);
}
else
{
}
我需要在else语句中进行查询,以便下次添加数据库中已存在FoodId
的新产品时,它应该只更新QuantityInStock
而不是创建新行。
答案 0 :(得分:0)
我建议检索m.QuantityInStock
记录并检查记录是否为空,而不是检索Tbl_Inventory
。如果为null,则创建新记录,否则更新QuantityInStock
属性。请参阅以下代码
// get the Tbl_Inventory record where FoodId equals pdtfid
var add = (from m in db.Tbl_Inventory
where m.FoodId == pdtfid
select m).FirstOrDefault();
if (add == null)
{
// insert new record
In.FoodId = product.FoodId;
In.QuantityInStock = In.QuantityInStock + product.ProductQuantity;
db.Tbl_Inventory.Add(In);
}
else
{
// update QuantityInStock from the existing record
add.QuantityInStock += product.ProductQuantity;
}
// submit the changes
db.SaveChanges();