如何在实体框架中更新?

时间:2016-09-26 21:54:00

标签: asp.net-mvc entity-framework

我能告诉我如何更新我的实体:

 public void VendreProduit(int idproduit, int idcentre)
    {
        var produit = db.Produits.FirstOrDefault(p => p.ProduitId ==  idproduit);
        int qtn = produit.ProduitQuantite - 1;

        db.Configuration.ValidateOnSaveEnabled = false;
        Produit prod = new Produit();

        prod.ProduitQuantite = qtn;

        db.Produits.Attach(prod);
        db.Entry(prod).Property(p => p.ProduitQuantite).IsModified = true;
        db.SaveChanges();

        Vondu v = new Vondu();
        v.ProduitId = idproduit;
        v.CentreId = idcentre;
        v.VonduDate = DateTime.Now;

        db.Vondus.Add(v);
        db.SaveChanges();
    }

我想更新产品的数量,我正在使用这种方法,但它不起作用并产生异常。

System.Data.Entity.Infrastructure.DbUpdateConcurrencyException' occurred in EntityFramework.dll but was not handled in user code

1 个答案:

答案 0 :(得分:2)

通过DbContext跟踪实体的更改。没有必要开发新产品。

public void VendreProduit(int idproduit, int idcentre)
{
    var produit = db.Produits.FirstOrDefault(p => p.ProduitId ==  idproduit);

    produit.ProduitQuantite -= 1;
    db.SaveChanges();
}