دوره‌ای که می‌تونه مسیر شغلیت رو عوض کنه! دوره‌ای که می‌تونه مسیر شغلیت رو عوض کنه!
🎯 ثبت نام
بستن تبلیغات
تسلط کامل بر سی‌شارپ با یک دوره پروژه‌محور

یادگیری سی شارپ از مفاهیم پایه تا پروژه محور: شی‌گرایی، کار با SQL و LINQ، ORMها (Entity Framework)، ساخت پروژه مدیریت رستوران با گزارشات حرفه‌ای و امکانات کامل!

مشاهده بیشتر
تسلط جامع بر MVC Core برای توسعه وب حرفه‌ای

یادگیری MVC Core از مبانی تا پیشرفته: شی‌گرایی، Routing، Entity Framework، امنیت، تست یونیت، Razor، Ajax، و پروژه‌های کاربردی! یک دوره کامل برای تسلط بر توسعه وب با ASP.NET Core. به صورت حضوری و آنلاین!

مشاهده بیشتر

آموزش پیکربندی رابطه ی یک به چند

آموزش پیکربندی رابطه ی یک به چند

خوب ما قصد داریم یک رابطه یک به چند بین کلاس های Student و Standard را پیاده سازی کنیم همان طور که بسیاری از دانشجویان در یک استاندارد تحصیل می کنند


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

کلاس Student یک مشخصه ارجاعی از کلاس Standard با مشخصه کلید خارجی StandardId دارد و کلاس Standard یک مشخصه collection برای دانشجویان دارد. بنابراین این DataAnnotation با نتیجه رابطه یک به چند حاصل می شود.


public class Student
‎    {‎
        ‎        public Student() { }‎
        ‎        public int StudentId { get; set; }‎
        ‎        [Required]‎
        ‎        public string StudentName { get; set; }‎
        ‎        public int StdandardId { get; set; }‎
        ‎        public virtual Standard Standard { get; set; }‎
        ‎    }‎
        ‎    public class Standard
‎    {‎
        ‎        public Standard()‎
        ‎        {‎
        ‎            StudentsList = new List();‎
        ‎        }‎
        ‎        public int StandardId { get; set; }‎
        ‎        public string StandardName { get; set; }‎
        ‎        public string Description { get; set; }‎
        ‎        public virtual ICollection Students { get; set; }‎
        ‎    }

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

فرض می کنیم که کلاس Student و کلاس Standard از قوانین Code-First پیروی نمی کنند و اسم های متفاوتی برای مشخصه ها دارند.


 
public class Student
‎    {‎
        ‎        public Student(){ }‎
        ‎        public int StudentId { get; set; }‎
        ‎        [Required]‎
        ‎        public string StudentName { get; set; }‎
        ‎        //StdId is not following code first conventions name‎
        ‎        public int StdId { get; set; }‎
        ‎        public virtual Standard Standard { get; set; }‎
        ‎    }‎
        ‎    public class Standard
‎    {‎
        ‎        public Standard()‎
        ‎        {‎
        ‎            StudentsList = new List();‎
        ‎        }‎
        ‎        public int StandardId { get; set; }‎
        ‎        public string StandardName { get; set; }‎
        ‎        public string Description { get; set; }‎
        ‎        public virtual ICollection StudentsList { get; set; }‎
        ‎    }

بنابراین شما با استفاده از Fluent API می توانید یک رابطه یک به چند را بین کلاس های Student و Standard پیاده سازی کنید


 
protected override void OnModelCreating(DbModelBuilder modelBuilder)‎
        ‎    {‎
        ‎            //one-to-many ‎
        ‎            modelBuilder.Entity().HasRequired(s => s.Standard)‎
        ‎            .WithMany(s => s.StudentsList).HasForeignKey(s => s.StdId);‎
        ‎    }

و روش دیگری هم به شکل زیر وجود دارد


 
protected override void OnModelCreating(DbModelBuilder modelBuilder)‎
        ‎    {‎
        ‎            //one-to-many
        ‎            modelBuilder.Entity().HasMany(s => s.StudentsList)‎
        ‎            .WithRequired(s => s.Standard).HasForeignKey(s => s.StdId);‎
        ‎    }

کد بالا نشان داده شده بالا پایگاه داده زیر را ایجاد می کند.


آموزش Entity Framework

مدل داده در designer به شکل دیاگرام پایین نشان داده می شود.


آموزش Entity Framework
1394/07/27 9763 2785
رمز عبور : tahlildadeh.com یا www.tahlildadeh.com
نظرات شما

نظرات خود را ثبت کنید...