• 1397/11/10

حذف از جدول PRODUCT :

سلام استاد قسمت حذف محصول رو فراموش کردین توضیح بدید.من یکسری کد نوشتم اما یک خطایی میده(به pareniID گیر میده).میشه لطفا توضیح بدید که چکار کنم؟

  public ActionResult DeleteConfirmed(int id)
        {
            Products products = db.Products.Find(id);
            //تصویر محصول
            if (products.ImageName != "images.jpg")
            {
                System.IO.File.Delete(Server.MapPath("/Images/ProductImages/" + products.ImageName));
                System.IO.File.Delete(Server.MapPath("/Images/ProductImages/Thumb/" + products.ImageName));

            }
            //کدهای مربوط به حذف تگ ها
             db.Product_Tags.Where(t => t.ProductID == products.ProductID).ToList().ForEach(t => db.Product_Tags.Remove(t));
            //کدهای مربوط به حذف گروه ها
            db.Product_Selected_Groups.Where(g => g.ProductID == products.ProductID).ToList().ForEach(g => db.Product_Selected_Groups.Remove(g));
            //ویژگی ها
            db.Product_Features.Where(f => f.ProductID == products.ProductID).ToList().ForEach(f => db.Product_Features.Remove(f));
            //گالری تصاویر

            foreach(var item in db.Product_Galleries.Where(gt => gt.ProductID == products.ProductID))
            {
                //var gallery = db.Product_Galleries.Find(item);
                System.IO.File.Delete(Server.MapPath("/Images/ProductImages/" + item.ImageName));
                System.IO.File.Delete(Server.MapPath("/Images/ProductImages/Thumb/" + item.ImageName));
            }
            
            db.Product_Galleries.Where(gt => gt.ProductID == products.ProductID).ToList().ForEach(gt => db.Product_Galleries.Remove(gt));

            //کامنت
            db.Product_Comment.Where(c => c.ProductID == products.ProductID).ToList().ForEach(c => db.Product_Comment.Remove(c));
            //جزییات فاکتور
            db.OrderDetails.Where(o => o.ProductID == products.ProductID).ToList().ForEach(o => db.OrderDetails.Remove(o));
            //محصول
            db.Products.Remove(products);
            db.SaveChanges();
            return RedirectToAction("Index");
        }

این هم کد خطا:

 

The DELETE statement conflicted with the SAME TABLE REFERENCE constraint "FK_Product_Comment_Product_Comment". The conflict occurred in database "MyEshop_DB", table "dbo.Product_Comment", column 'ParentID'.
The statement has been terminated.

  • 1397/11/10
  • ساعت 15:30

سلام 

ابتدا باید همه زیر مجموعه ها رو حذف کنید و بعد محصول رو 


logo-enamadlogo-samandehi