در این پست از وبسایت پرووید در رابطه با پیکربندی رابطه های Many-to-Many در EF Core با استفاده از Fluent API #1 صحبت خواهیم کرد. تکنولوژی Entity Framework Core نسل بعدی Entity Framework است که توسط مایکروسافت معرفی شده است.


پیکربندی relationship های many-to-many در Entity Framework Core

در این قسمت از این آموزش از وبسایت پرووید قصد داریم در رابطه با انجام پیکربندی های مربوط به relationship های many-to-many با استفاده از Fluent API در Entity Framework Core صحبت کنیم. در قسمت های قبلی از این سری آموزش ها در رابطه با انجام پیکربندی ها با استفاده از Fluent API و relationship های one-to-one و one-to-many صحبت کردیم.

بسته ی آموزش ویدئویی معماری نرم افزار در Entity Framework Core

از شما دعوت می کنیم که از بسته ی آموزش ویدئویی معماری نرم افزار در Entity Framework Core دیدن کنید.

کار را با یک مثال آغاز می کنیم. فرض کنید می‌خواهیم بین دو entity class بانام‌ های Student و Course یک relationship از نوع many-to-many پیاده سازی کنیم. به عبارت دیگر یک Student می‌تواند در تعداد زیادی Course ثبت نام کند و یک Course می‌تواند حاوی تعداد زیادی Student باشد. تعریف entity class های Student و Course در قسمت زیر آمده اند. در رابطه با entity class ها در بسته ی آموزش ویدئویی کاربردی طراحی نرم افزار Domain Driven Design بیشتر مطالعه کنید.

public class Student
{
    public int StudentId { get; set; }
    public string Name { get; set; }
}

public class Course
{
    public int CourseId { get; set; }
    public string CourseName { get; set; }
    public string Description { get; set; }
}

شاید بدانید که relationship های many-to-many در یک دیتابیس با استفاده از یک joining table انجام میشود. در این joining table کلیدهای اصلی مربوط به هر دو entity class را قرار میدهیم. خوب تصویر زیر نیز این موضوع را نشان می دهد.

بررسی Convention های مربوط به relationship های many-to-many در Entity Framework Core

متاسفانه در حال حاضر هیچ convention ای برای پیاده سازی خودکار relationship های many-to-many وجود ندارد و برای آنها باید با استفاده از Fluent API کار را انجام دهیم. در ادامه در رابطه با این موضوع صحبت خواهیم کرد. به منظور کسب اطلاعات بیشتر در رابطه با convention ها آموزش بررسی Convention ها در Entity Framework Core #1 را مطالعه کنید.

بسته ی آموزش ویدئویی شروع به کار با Entity Framework Core

از شما دعوت می کنیم که از بسته ی آموزش ویدئویی شروع به کار با Entity Framework Core دیدن کنید.

پیکربندی relationship های many-to-many با استفاده از Fluent API

در Entity Framework 6 و نسخه قبلی با استفاده از API مربوط به Entity Framework می‌توانستیم یک joining table را برای relationship های many-to-many پیاده سازی کنیم. به منظور پیاده‌سازی یک joining table نیازی به ساختن یک joining entity class نبود هر چند که می‌توانستیم به صورت explicit یک joining entity class را در Entity Framework 6 ایجاد کنیم. و اما در Entity Framework Core در حال حاضر این موضوع پیاده سازی نشده است.

ما مجبور هستیم که یک joining entity class را برای یک joining table بسازیم. این joining entity class برای مثال ما که یک relationship از نوع many-to-many بین Student و Course را شکل خواهد داد شامل یک foreign key property و یک reference navigation property برای هر کدام از entity ها می باشد. مراحل پیاده سازی یک relationship از نوع many-to-many در Entity Framework Core از قرار زیر می باشد.

  • در ابتدا باید یک joining entity class را ایجاد کرده که شامل یک foreign key property و یک reference navigation property برای هر کدام از entity ها باشد.
  • پس از آن یک relationship از نوع one-to-many را بین هر دو entity و joining entity class ایجاد می‌کنیم. این کار را با قرار دادن یک collection navigation property در هر کدام از entity هایی که قرار است بین آنها یک relationship ایجاد شود انجام می‌ دهیم. در مثال ما این دو entity همان Student و Course هستند.
  • در نهایت با استفاده از Fluent API هر دو foreign key property های مربوط به joining entity class را به عنوان composite key تعریف می کنیم.

در قسمت بعدی از این آموزش در رابطه با همین موضوع صحبت خواهیم کرد.

پاسخی بگذارید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *