سلام.من سه مدل دارم به شکل زیر
public class Jobgroups { public int Id { get; set; } [Display(Name = "عنوان گروه را وارد کنید")] [Required(ErrorMessage = "لطفا {0} را وارد کنید")] public string Name { get; set; } public virtual List<Jobregister> Jobregister { get; set; } public virtual List<JobSubGroups> JobSubGroups { get; set; } } ========================= public class JobSubGroups { public int Id { get; set; } [Display(Name = "گروه را انتخاب نمایید")] [Required(ErrorMessage = "لطفا {0} را وارد کنید")] public int GroupId { get; set; } [Display(Name = "عنوان زیر گروه را وارد کنید")] [Required(ErrorMessage = "لطفا {0} را وارد کنید")] public string Name { get; set; } [ForeignKey("GroupId")] public virtual Jobgroups Jobgroups { get; set; } public virtual List<Jobregister> Jobregister { get; set; } } ========================== public class Jobregister { public int Id { get; set; } [Display(Name = "گروه شغلی")] [Required(ErrorMessage = "لطفا {0} را وارد کنید")] public int GroupId { get; set; } [Display(Name = "زیرگروه شغل")] [Required(ErrorMessage = "لطفا {0} را وارد کنید")] public int SubgroupId { get; set; } //Relation's................................. [ForeignKey("GroupId")] public virtual Jobgroups Jobgroups { get; set; } [ForeignKey("SubgroupId")] public virtual JobSubGroups JobSubGroups { get; set; } }
در هنگام ایجاد مدل با خطای زیر مواجه می ش که ظاهرا به خاطر تعریف ریلیشن ها هست.
Introducing FOREIGN KEY constraint 'FK_dbo.Jobregisters_dbo.JobSubGroups_SubgroupId' on table 'Jobregisters' may cause cycles or multiple cascade paths. Specify ON DELETE NO ACTION or ON UPDATE NO ACTION, or modify other FOREIGN KEY constraints.
Could not create constraint or index. See previous errors.
لطفا راهنمایی کنید کجای مدل ریلیشن رو اشتباه تعریف کردم.متشکرم
برای کلاس ها یک سازنده تعریف کنید
خالی باشه فقط تعریف کنید
ممنونم استاد..با سازنده هم حل نشد.حدس می زنم یک ریلیشن دوو جا تعریف شده که نباید می شده.اما متوجه نمی شم کجا.برای ساده شدن موضوع یک مثال نوشتم که اون رو قرار می دم.از راهنمایی شما ممنونم.
public class Groups {public Groups() { } public int Id { get; set; } public string Name { get; set; } public virtual List<subgroups> subgroups { get; set; } public virtual List<General> General { get; set; } } ===================================== public class subgroups { public subgroups() { } public int Id { get; set; } public string Name { get; set; } public int GroupId { get; set; } [ForeignKey("GroupId")] public virtual Groups Groups { get; set; } public virtual List<General> General { get; set; } } ===================================== public class General { public General() { } public int Id { get; set; } public int GroupIdb { get; set; } public int SubgroupId { get; set; } [ForeignKey("GroupIdb")] public virtual Groups Groups { get; set; } [ForeignKey("SubgroupId")] public virtual subgroups subgroups { get; set; } }
پیام خطا:
Introducing FOREIGN KEY constraint 'FK_dbo.subgroups_dbo.Groups_GroupId' on table 'subgroups' may cause cycles or multiple cascade paths. Specify ON DELETE NO ACTION or ON UPDATE NO ACTION, or modify other FOREIGN KEY constraints.
Could not create constraint or index. See previous errors.
در جنرال باید رابطه چند باشه نه یک
شاید در یک کلاس نشه دو fk تعریف کرد شاید
هیچ کاربری تا کنون از این پست تشکر نکرده است
با ما تماس بگیرید تا در این مسیر همراهتان باشیم :)