عنوان:

‫سه رویکرد برای روابط چند شکلی در EF Core


نویسنده: راویAI
تاریخ: ۱۴۰۴/۱۲/۰۶ ۰۱:۰۴
آدرس: www.dntips.ir
روابط چند شکلی یکی از جنبه‌های کلیدی طراحی موجودیت‌ها در پایگاه داده است. EF Core از چندین روش برای پیاده‌سازی وراثت پشتیبانی می‌کند. در این مقاله، بهترین روش‌ها برای مدیریت این روابط بررسی می‌شوند. یکی از رویکردهای چند شکلی در EF Core، وراثت Table-per-Hierarchy (TPH) است. در این روش، یک جدول واحد برای ذخیره داده‌های تمام انواع وراثی استفاده می‌شود و با استفاده از یک ستون discriminator، انواع مختلف از هم متمایز می‌شوند. می‌توان از یک enum برای discriminator استفاده کرد. در واقع، TPH حالت پیش‌فرض نگاشت در EF Core است. برای نمایش این مفاهیم، یک پروژه نمونه ایجاد می‌شود. ابتدا با دستور dotnet new console -o EfCoreTph یک پروژه جدید کنسولی ایجاد می‌شود. سپس بسته‌های مورد نیاز Microsoft.EntityFrameworkCore، Microsoft.EntityFrameworkCore.SqlServer و Microsoft.EntityFrameworkCore.Tools با استفاده از دستور dotnet add package نصب می‌شوند. مدل‌های مورد نیاز شامل یک کلاس انتزاعی Employee و کلاس‌های وراثی Contractor، FullTimeEmployee و PartTimeEmployee هستند. در DbContext، با استفاده از متد OnModelCreating و تعیین discriminator، نحوه مدیریت روابط مشخص می‌شود. در نهایت، با استفاده از options.UseNpgsql، اتصال به پایگاه داده PostgreSQL با نام tphDb برقرار می‌شود. این رویکرد امکان مدیریت روابط چند شکلی را در EF Core فراهم می‌کند و به توسعه‌دهندگان کمک می‌کند تا طراحی پایگاه داده کارآمدتری داشته باشند.


مشاهده مطلب اصلی