2016-09-26 18 views
-2
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(); 
} 

私はこの商品の数量を更新したいですが、このメソッドを使用していますが、動作しておらず、例外が発生しています。Entity Frameworkの更新方法は?

+3

どのラインが例外を投げていますか?例外とは何ですか? – mxmissile

+0

あなたは更新を求めていますが、あなたのコードでは新しいエンティティを追加しようとしています。 – vamsi

+0

System.Data.Entity.Infrastructure.DbUpdateConcurrencyException 'EntityFramework.dllで発生しましたが、ユーザーコード – Mohamed

答えて

2

エンティティは、DbContextによって変更が追跡されます。新製品をスピンアップする必要はありません。

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

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

で処理されませんでしたこれは更新するコードですか? – Mohamed

関連する問題