
یادگیری سی شارپ از مفاهیم پایه تا پروژه محور: شیگرایی، کار با SQL و LINQ، ORMها (Entity Framework)، ساخت پروژه مدیریت رستوران با گزارشات حرفهای و امکانات کامل!
مشاهده بیشتر
یادگیری MVC Core از مبانی تا پیشرفته: شیگرایی، Routing، Entity Framework، امنیت، تست یونیت، Razor، Ajax، و پروژههای کاربردی! یک دوره کامل برای تسلط بر توسعه وب با ASP.NET Core. به صورت حضوری و آنلاین!
مشاهده بیشترمشخصات مقاله
آموزش پیکربندی رابطه چند به چند
آموزش پیکربندی رابطه چند به چند
ما قصد داریم یک رابطه چند به چند بین کلا س های Student و Course پیکربندی کنیم.
پیکربندی رابطه چند به چند با استفاده از DataAnnotation
کلاس Student یک مشخصه collection navigation برای کلاس Course دارد و کلاس Course هم باید یک مشخصه collection navigation برای کلاس student داشته باشد که یک رابطه چند به چند بین کلاس student و کلاس course ایجاد می کند
public class Student { public Student() { } public int StudentId { get; set; } [Required] public string StudentName { get; set; } public int StdandardId { get; set; } public virtual ICollection Courses { get; set; } } public class Course { public Course() { this.Students = new HashSet(); } public int CourseId { get; set; } public string CourseName { get; set; } public virtual ICollection Students { get; set; } }
قطعه کد نشان داده شده در بالا ، پایگاه داده پایین را ایجاد می کند که Code-First سومین جدول اتحاد شده را ایجاد می کند . جدول CourseStudent که شامل کلید اولیه هر دوجدول است برای مثال شامل هر دو فیلد StudentId و CourseId می باشد.

پیکربندی رابطه چند به چند با استفاده از Fluent API
به کمک Fluent API می توانید یک رابطه چند به چند بین کلاس های Student و Course به شرح زیر پیکربندی کنید.
protected override void OnModelCreating(DbModelBuilder modelBuilder) { modelBuilder.Entity().HasMany(s => s.Courses).WithMany(c => c.Students).Map(c => { c.MapLeftKey("Student_id"); c.MapRightKey("Course_id"); c.ToTable("StudentAndCourse"); }); base.OnModelCreating(modelBuilder); }
همان طور که در قطعه کد بالا می بینید کلید سمت چپ (ستون کلید در کلاس Student) با فیلد Student_id و کلید سمت راست (ستون کلید از کلاس Course) با فیلد Course_id از جدول StudentAndCourse با هم به کار می روند.
این یک جدول اتحاد جدید به نام StudentAndCourse با دو کلید اولیه که همچنین یک کلید خارجی نیز هست ، به شرح زیر می باشد.

مطالبتون عالیه ممنون از زحماتتون