مشکل update کردن دیتابیس به دلیل وجود رابطه بین جداول

elighadimi

عضویت : 1398/06/14 پرسش ها : 1 پاسخ ها : 0

مشکل update کردن دیتابیس به دلیل وجود رابطه بین جداول

ارسال شده در : ‫۲۶ روز قبل، سه شنبه ۱۳ اسفند ۱۳۹۸، ساعت ۱۷:۰۶

سلام

من می خوام در قسمت گروه ها و زیر گروه ها پس از ساختن کلاس ها ، migration , update انجام بده که با اررور زیر مواجه میشم:

Introducing FOREIGN KEY constraint 'FK_Products_Categories_SubCategoryId' on table 'Products' may cause cycles or multiple cascade paths. Specify ON DELETE NO ACTION or ON UPDATE NO ACTION, or modify other FOREIGN KEY constraints

سرچ کردم گفتند در context  و با  override کردن modebuilder این مشکل رفع میشه ولی من با کداش به مشکل خوردم.

کد کلاس هاس من:

    public class Product
    {
        [Key]
        public int ProductId { get; set; }

        [Display(Name = "نام گروه اصلی")]
        [Required(ErrorMessage = " لطفا {0} را وارد کنید")]
        public int CategoryId { get; set; }

        [Display(Name = "نام گروه کالا")]
        public int? SubCategoryId { get; set; }


        [Display(Name = "نام کالا")]
        [Required(ErrorMessage = " لطفا {0} را وارد کنید")]
        [MaxLength(300, ErrorMessage = " {0} نمیتواند بیشتر از {1} باشد")]
        public string ProductName { get; set; }

        [Display(Name = "خلاصه")]
        [Required(ErrorMessage = " لطفا {0} را وارد کنید")]
        [MaxLength(500, ErrorMessage = " {0} نمیتواند بیشتر از {1} باشد")]
        public string Summary { get; set; }

        [Display(Name = "شرح ")]
        [Required(ErrorMessage = " لطفا {0} را وارد کنید")]
        public string Description { get; set; }

        [Display(Name = "پر فروش")]
        public bool MostSales { get; set; }

        [Display(Name = "تصویر کالا")]
        public string ImageName { get; set; }

        [Display(Name = "کلمات کلیدی")]
        public string Tags { get; set; }

        [ForeignKey("CategoryId")]
        public Category ProductCategory { get; set; }

        [ForeignKey("SubCategoryId")]
        public Category SubCategory { get; set; }
    }
    public class Category
    {
        [Key]
        public int CategoryId { get; set; }

        [Display(Name = "نام گروه کالا")]
        [Required(ErrorMessage =" لطفا {0} را وارد کنید")]
        [MaxLength(300,ErrorMessage =" {0} نمیتواند بیشتر از {1} باشد")]
        public string CategoryName { get; set; }

        [Display(Name = "نام گروه اصلی")]
        public int? ParentId { get; set; }

      
        [ForeignKey("ParentId")]
        public List<Category> Categories { get; set; }


        [InverseProperty("ProductCategory")]
        public List<Product> Products { get; set; }


        [InverseProperty("SubCategory")]
        public List<Product> SubCategory { get; set; }
    }

ممنون میشم راهنمایی بفرمایید.

ایمان مدائنی

عضویت : 1396/09/10 پرسش ها : 5 پاسخ ها : 10468
ارسال شده در :‫۲۶ روز قبل، سه شنبه ۱۳ اسفند ۱۳۹۸، ساعت ۲۱:۳۳

سلام 

برای رابطه های پیچیده باید از Fluent Api استفاده کنید 

1 تشکر

برای ارسال پاسخ باید وارد شوید و یا در سایت عضو شوید