Не получается при продаже товара, списывать, остаток с базы данных

        {
            if(id==null)
            return RedirectToAction("Index");

            ViewBag.Rez = id;

            return View();

        }
        [HttpPost]
        public string  Buy(Order order, Phone phone)
        {
            db.Orders.Add(order);
             db.SaveChanges();
            phone.Count--;
            db.Phones.Update(phone);
            db.SaveChanges();

            return "Спасибо, " + order.User + ", за покупку!";
    


        }

Есть класс Phone,который имеет свойство Count(остаток товара), но при продаже остаток не меняется. Или надо создать третью переменную, для сохранения данных.


Ответы (1 шт):

Автор решения: xxramm

Все проще. Допустим

public class Phone 
{
        [Key]
        public int ID { get; set; }
        public int Count { get; set; }
}
    
    [HttpPost]
public string  Buy(Order order, Phone phone)
{
        db.Orders.Add(order);
        // Обновляем объект базы. Phones - имя таблицы для Phone
        var phoneInDb = db.Phones.Where(con => con.ID == phone.ID).FirstOrDefault();
        phoneInDb.Count = phoneInDb.Count - 1;
        db.Phones.Update(phoneInDb);
        // Не рекомендуется в одном методе использовать больше одного SaveChanges.
        db.SaveChanges();
    
        return "Спасибо, " + order.User + ", за покупку!";
}
→ Ссылка