پیاده‌سازی روابط یک به چند در EF Core

تهران آی تی / برنامــه نویــسـی / پیاده‌سازی روابط یک به چند در EF Core

پیاده‌سازی روابط یک به چند در EF Core

روابط یک به چند در EF Core چیست ؟ رابطه یک به چند (One-to-Many) به این معناست که یک موجودیت (Entity) می‌تواند چندین موجودیت دیگر را داشته باشد، اما هر یک از آن موجودیت‌ها فقط به یک موجودیت از نوع اول مرتبط هستند. در این آموزش ، یک رابطه یک به چند (One-to-Many) بین دانشجو (Student) و شماره‌های تماس (Phone) تعریف میکنیم. به این معنی که هر دانشجو می‌تواند چندین شماره تماس داشته باشد، اما هر شماره تماس فقط به یک دانشجو مرتبط است.

پیاده‌سازی روابط یک به چند در EF Core

پیاده‌سازی روابط یک به چند در EF Core

در چه زمانی از ارتباط یک به چند استفاده کنیم؟

ارتباط یک به چند زمانی استفاده می‌شود که یک موجودیت اصلی می‌تواند چندین زیرمجموعه یا داده وابسته داشته باشد، اما هر یک از این داده‌های وابسته فقط به یک موجودیت اصلی مرتبط باشند. هر زمان که یک موجودیت باید چندین مقدار مرتبط داشته باشد، اما هر مقدار فقط به یک موجودیت خاص مرتبط است، از رابطه یک به چند (One-to-Many) استفاده می‌کنیم.

تعریف مدل ها

ابتدا کلاس‌های Student و Phone را تعریف می‌کنیم. که نمایانگر جداول دیتابیس هستند.

  • مدل Student

public class Student
{
public int Id { get; set; }
public required string Name { get; set; }
public required string Family { get; set; }
public required string Email { get; set; }
//Navigation Property
public ICollection<Phone>? Phones { get; set; }
}

  • مدل Phone

public class Phone
{
public int Id { get; set; }
public required string PhoneNumber { get; set; }
public required PhoneType PhoneType { get; set; }
//Navigation Property
public int StudentId { get; set; }
public required Student Student { get; set; }
}
public enum PhoneType
{
[Display(Name = "خانه")]
Home,
[Display(Name = "کار")]
Work,
[Display(Name = "تلفن همراه")]
Mobile
}

تعریف ویو مدل ها

  • ویو مدل Student

public class StudentViewModel
{
public int Id { get; set; }
public required string Name { get; set; }
public required string Family { get; set; }
public required string Email { get; set; }
public ICollection<Phone>? Phones { get; set; }
}

  • ویو مدل Phone

public class PhoneViewModel
{
public int Id { get; set; }
public required string PhoneNumber { get; set; }
public string? FullName { get; set; }
public required PhoneType PhoneType { get; set; }
public int StudentId { get; set; }
}

تنظیمات DbContext

  • ثبت مدل ها

public DbSet<Student> students { get; set; }
public DbSet<Phone> Phones { get; set; }

  • افزودن تنطیمات ارتباط یک به چند

modelBuilder.Entity<Student>()
.HasMany(s => s.Phones)
.WithOne(p => p.Student)
.HasForeignKey(p => p.StudentId)
.OnDelete(DeleteBehavior.Cascade);

  • متد HasMany : این متد مشخص می‌کند که یک دانشجو (Student) می‌تواند چندین شماره تماس (Phone) داشته باشد.
  • متد WithOne : این متد نشان می‌دهد که هر شماره تماس (Phone) فقط به یک دانشجو (Student) مرتبط است.
  • متد HasForeignKey : این متد مشخص می‌کند که کلید خارجی (Foreign Key) در جدول Phone فیلد StudentId است.
  • متد OnDelete : این متد تعیین می‌کند که اگر یک دانشجو حذف شود (Student)، تمام شماره‌های مرتبط با او (Phone) نیز به‌طور خودکار حذف شوند.
جستجو کنید
دسترسی سریع
دسته ها

طراحی و پیاده سازی پروژه های طراحی سایت دانشجویی

انجام، اجرا و طراحی پروژه های طراحی سایت برای دانشجویان با HTML CSS PHP ASP.NET JAVA و ... با کمترین هزینه. برای مشاهده نمونه کارها و یا دریافت مشاوره رایگان از تیم طراحی سایت تهران آی تی با ما در تماس باشید. ما بهترین پروژه های طراحی سایت را با حداقل هزینه برای شما طراحی میکنیم - مشاوره رایگان 09121486770

مــشاوره و مشاهده نمونه کارها

مطالب مرتبط

لطفا از مطالب مرتبط با این پست دیدن فرمایید

جــذاب های هفته

از پربازدیدترین مطالب تهران آی تی در هفته ای که گذشت دیدن فرمایید

باورکردنی نیست فقط با 300 هزار تومان

طراحی سایت شما + طراحی اپلیکیشن هدیه و رایگان
این یک حراج است در مدت زمان محدود - شرکت های زیادی سایت های ارزان طراحی میکنند اما آیا کیفیت لازم را دارا هستند؟ طراحی سایت ارزان به همراه اپلیکیشن رایگان هدیه برای اولین بار توسط تهران آی تی مخصوص سازمان ها و کسب و کار های کوچک و بزرگ و حتی جدید تیم طراحی سایت تهران آی تی در کنار شماست تا شناخته شوید - مشاوره رایگان 09121486770

مــشاوره و مشاهده نمونه کارها

پشتیبانی 24 ساعته

تیم تهران آی تی در هفت روز هفته و 24 ساعت روز آماده پاسخ گویی به سوالات کاربران و ارائه مشاره رایگان میباشد