我想检查数据库中是否已存在productDiscount
实体,如果存在,那么我想更新它。但是,不是更新实体,而是以下代码添加新代码。如何解决这个问题..
[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult ProductDiscount(ProductDiscount productDiscount)
{
if (!ModelState.IsValid)
{
var viewModel = new ViewModelProductDiscount()
{
Products = _context.Products.ToList()
};
return View(viewModel);
}
var id = productDiscount.ProductId;
var disInDb = _context.ProductDiscounts.FirstOrDefault(p => p.ProductId == id);
if (disInDb==null)
{
_context.ProductDiscounts.Add(productDiscount);
_context.SaveChanges();
}
else
{
_context.ProductDiscounts.Add(disInDb);
_context.SaveChanges();
return Content(disInDb.Id.ToString());
}
return RedirectToAction("Products");
}
答案 0 :(得分:0)
else
块的删除_context.ProductDiscounts.Add(disInDb);
只需将productDiscount
值映射到disInDb
然后_context.SaveChanges();
喜欢
else
{
disInDb.Name = productDiscount.Name;
disInDb.Discription = productDiscount.Discription;
_context.SaveChanges();
}
答案 1 :(得分:-1)
我真的不知道你的ProductDiscount
对象是怎样的,所以我会假设你的对象道具,但它应该让你知道如何更新记录。在else
这一行_context.ProductDiscounts.Add(disInDb);
内,是造成问题的原因。相反,您希望在else
块
else
{
disInDb.DiscountCode = "somecode"; //change this to the correct prop name which needs updating
disInDb.DiscountProductName = "somename"; //change this to the correct prop name which needs updating
_context.SaveChanges();
}