如何在实体框架中更新?
问题描述:
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();
}
我想更新产品的数量,我正在使用此方法,但它不工作并生成异常。如何在实体框架中更新?
答
通过DbContext跟踪实体的变化。没有必要启动一个新产品。
public void VendreProduit(int idproduit, int idcentre)
{
var produit = db.Produits.FirstOrDefault(p => p.ProduitId == idproduit);
produit.ProduitQuantite -= 1;
db.SaveChanges();
}
+0
这是要更新的代码? – Mohamed
哪一行是抛出异常?什么是例外? – mxmissile
您正在要求更新,但在您的代码中您正尝试添加新实体。 – vamsi
System.Data.Entity.Infrastructure.DbUpdateConcurrencyException'发生在EntityFramework.dll中,但未在用户代码中处理 – Mohamed