یکی از مهمترین تصمیمها در استفاده از Entity Framework Core انتخاب روش پیادهسازی مدل داده است. EF Core دو رویکرد اصلی برای تعریف و مدیریت دیتابیس دارد: Code First و Database First. هر کدام از این رویکردها مزایا و کاربردهای خاص خود را دارند و انتخاب صحیح آنها بسته به نیاز پروژه انجام میشود.
Code First
در رویکرد Code First، ابتدا مدلهای داده بهصورت کلاسهای C# تعریف میشوند و سپس EF Core از روی این کلاسها دیتابیس را ایجاد میکند. این روش بیشتر در پروژههای جدید و زمانی که دیتابیس از صفر طراحی میشود کاربرد دارد.
public class Student
{
public int Id { get; set; }
public string Name { get; set; } = "";
public DateTime BirthDate { get; set; }
}
با اجرای دستور Add-Migration
و سپس Update-Database
ساختار دیتابیس بهصورت خودکار ایجاد میشود.
Database First
در رویکرد Database First، ابتدا دیتابیس طراحی و ایجاد میشود، سپس EF Core مدلهای C# را بر اساس جداول موجود تولید میکند. این روش مناسب زمانی است که دیتابیس قبلاً وجود دارد یا تیم دیتابیس جداگانه ساختار را طراحی کرده است.
dotnet ef dbcontext scaffold "Server=.;Database=School;Trusted_Connection=True;" Microsoft.EntityFrameworkCore.SqlServer
این دستور مدلها و کلاس DbContext را از روی دیتابیس موجود تولید میکند.
مدیریت Migrationها
Migration ابزاری است که تغییرات مدلها را به تغییرات دیتابیس تبدیل میکند. با استفاده از Migration میتوان دیتابیس را بدون از دست رفتن دادهها بهروز کرد.
Add-Migration
: ایجاد یک Migration جدیدUpdate-Database
: اعمال Migrationها روی دیتابیسRemove-Migration
: حذف آخرین Migration
انتخاب بین Code First و Database First وابسته به سناریوی پروژه است؛ در ادامه مجموعه با تعریف رابطهها و تنظیمات پیشرفته مدلها آشنا میشویم.