اگر با پایگاه داده کار کرده باشید، احتمالا میدانید که مدیریت دادهها و تعامل با پایگاههای داده چالشبرانگیز است. ایجاد، خواندن، بهروزرسانی و حذف دادهها در یک سیستم معمولا نیازمند نوشتن کدهای پیچیده و زمانبر SQL است. اما با ظهور ابزارهای ORM، کار با دادهها سادهتر و موثرتر از گذشته شده است. یکی از این ابزارهای قدرتمند در دنیای داتنت، Entity Framework Core یا به اختصار EF Core است اگر این کلمات را تابهحال نشنیدهاید، نگران نباشید؛ زیرا در ادامه به توضیح آنها میپردازیم و بررسی میکنیم که این فریمورک چگونه با استفاده از فلسفه ORM میتواند فرایند توسعه را تسهیل کند.
Entity Framework Core چیست؟

Entity Framework Core نسخهای سبک، متنباز و چندسکویی از تکنولوژی محبوب Entity Framework است که توسط مایکروسافت ارائه شده تا دسترسی به دادههای دیتابیس را سادهتر کند. این فریمورک که به اختصار با نام EF Core هم شناخته میشود از ORM استفاده میکند. این تکنیک به توسعهدهندگان اجازه میدهد تا راحتتر با پایگاه داده تعامل برقرار کنند و از پیچیدگیهای SQL و دستورات آن خلاص شوند.
هدف اصلی EF Core، تسهیل دسترسی به دادهها و سادهسازی فرایند کار با پایگاه داده است، اما چطور این کار را انجام میدهد؟ در ادامه بیشتر در مورد نحوه کار این فریمورک صحبت میکنیم، اما قبل از آن باید بدانید که ORM چیست.
ORM چیست؟

ORM (Object-Relational Mapping)، بهمعنی نگاشت شیء رابطهای است. این ابزار به برنامهنویسان کمک میکند تا از اشیا و کلاسهای زبان برنامهنویسی مدنظر خود برای کار با دادههای دیتابیس استفاده کنند. به این ترتیب دیگر نیازی به نوشتن دستورات پیچیده SQL برای کار با پایگاه داده نیست؛ چرا که ORM اشیا را به جدولهای پایگاه داده و خواص آنها را به ستونهای جدولها نگاشت میکند. به عبارت ساده، یک ORM مدرن مانند EF Core میتواند تا حد زیادی پیچیدگیهای کار با SQL را کاهش دهد. EF Core از سه رویکرد اصلی برای دسترسی به پایگاه داده پشتیبانی میکند:
- Database First: در این روش، ابتدا پایگاه داده ایجاد میشود و سپس EF Core براساس آن مدلهای دادهای را تولید میکند.
- Code First: این روش از پایین به بالا عمل میکند؛ یعنی ابتدا مدلهای دادهای به زبان C# نوشته میشوند و سپس EF Core براساس آنها، پایگاه داده را میسازد.
- Model First: در این روش، ابتدا مدلها طراحی میشوند و براساس آنها، پایگاه داده و کلاسها ایجاد میشوند.
چرا باید از Entity Framework Core استفاده کنیم؟

برای درک بهتر اهمیت استفاده از ORM و EF Core، بیایید با یک مثال پیش برویم. فرض کنید میخواهیم برنامهای برای مدیریت دانشجویان یک دانشگاه بسازیم. در این برنامه کلاسهایی مانند Student ،Department Address تعریف میکنیم که بهطور فنی به آنها کلاسهای دامنه یا اشیای تجاری گفته میشود.
بدون استفاده از یک ORM مانند EF Core، باید کدهای زیادی برای انجام عملیاتهای اصلی بنویسیم؛ یعنی باید SQLهایی برای درج، خواندن، بهروزرسانی یا حذف دادههای دانشجویان و دپارتمانها ایجاد کنیم. علاوهبر این، باید منطق خاصی بنویسیم تا دادههای دیتابیس را به کلاسهای مدلمان مانند Student، Department و Address نگاشت کنیم.
ORMهای مانند EF Core، این عملیاتهای پیچیده را خودکار میکنند و با ایجاد ارتباط بین کدهای برنامه و پایگاه داده، کدهای اضافی را حذف میکنند و زمان توسعه را کاهش میدهند. علاوهبر این مزیت بسیار مهم، EF Core مزایای دیگری هم دارد.
مزایای کلیدی EF Core

برخی از مزایای دیگری که EF Core در اختیار شما قرار میدهد عبارتاند از:
- سازگاری با چندین پایگاه داده: این فریمورک از دیتابیسهای معروف مثل SQL Server، PostgreSQL ،MySQL و SQLite پشتیبانی میکند.
- کاهش کدنویسی با استفاده از LINQ: توسعهدهندگان میتوانند از زبان پرسوجوی یکپارچه (LINQ) و زبان C# برای کاهش دستورات مورد نیاز استفاده کنند.
- مدیریت مایگریشنها (Migrations): این فریمورک، مدیریت تغییرات در ساختار پایگاه داده را آسان میکند.
- پشتیبانی از Lazy Loading: این قابلیت که با نام بارگذاری تنبل هم شناخته میشود، تنها دادههای موردنیاز را بارگذاری میکند تا کارایی برنامه را بهبود بدهد.
- ردیابی تغییرات (Change Tracking): بهطور خودکار تغییرات را ردیابی و مدیریت آنها را سادهتر میکند.
همانطور که میبینید، همه مزایا و قابلیتهای کلیدی EF Core بر کاهش پیچیدگیها و زمان توسعه و همچنین بهبود کارایی برنامه تمرکز دارند.
شروع کار با EF Core
برای شروع کار با EF Core، ابتدا باید پروژهای در محیط داتنت ایجاد و سپس پکیج مربوط به EF Core را نصب کنید. در این مطلب قصد نداریم وارد جزئیات کار با این فریمورک شویم؛ چرا که آموزشهای کاملی در سطح اینترنت و یوتیوب برای کار با EF Core وجود دارد. با وجود این بیایید مراحل نصب و شروع یک پروژه کوچک را بررسی کنیم. مراحل نصب به شرح زیر است:
۱. در محیط Visual Studio یک پروژه جدید ایجاد کنید.
۲. پکیج EF Core را از طریق NuGet Package Manager نصب کنید. برای این کار دستور زیر را در کنسول وارد کنید:
|
1 |
Install–Package Microsoft.EntityFrameworkCore |
۳. در صورت نیاز، پکیجهایی مانند SQL Server یا دیگر پایگاههای داده را نیز نصب کنید:
|
1 |
Install–Package Microsoft.EntityFrameworkCore.SqlServer |
نمونهای ساده از پیادهسازی EF Core
حالا بیایید یک مثال ساده با استفاده EF Core را در یک پروژه C# بنویسیم:
۱. ابتدا یک کلاس برای مدل دادهای ایجاد میکنیم:
|
1 2 3 4 5 6 |
public class Product { public int Id { get; set; } public string Name { get; set; } public decimal Price { get; set; } } |
۲. سپس یک کلاس برای تنظیمات EF Core (کانتکست) ایجاد میکنیم:
|
1 2 3 4 5 6 7 8 9 |
public class ApplicationDbContext : DbContext { public DbSet<Product> Products { get; set; } protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder) { optionsBuilder.UseSqlServer(“YourConnectionStringHere”); } } |
۳. حالا میتوانیم دادهها را در پایگاه داده اضافه، واکشی و بهروزرسانی کنیم:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
using (var context = new ApplicationDbContext()) { // اضافه کردن محصول جدید var product = new Product { Name = “Laptop”, Price = 1500m }; context.Products.Add(product); context.SaveChanges(); // واکشی و نمایش محصولات var products = context.Products.ToList(); foreach (var p in products) { Console.WriteLine($“{p.Id} – {p.Name} – {p.Price}”); } } |
کدهای بالا، مثال کوچکی از نحوه کار EF Core است و نشان میدهد که چگونه این فریمورک میتواند کدهای طولانی و دستورات پیچیده را در چند خط خلاصه کند.
سخن پایانی
Entity Framework Core ابزاری است که میتواند بسیاری از پیچیدگیهای مدیریت داده را ساده کند، در نتیجه توسعهدهندگان نیازی به نوشتن کوئریهای پیچیده ندارند. این فریمورک با ویژگیهای کاربردی و توانایی مدیریت پایگاه دادههای مختلف، به ابزاری محبوب برای توسعهدهندگان تبدیل شده است. در عصر حاضر که نیاز به توسعه سریع و کارآمد نرمافزارها بیشتر از همیشه احساس میشود، EF Core میتواند بخش مهمی از روند توسعه را تسریع و تجربه کار با دادهها را سادهتر کند.
منابع
www.javatpoint.com | www.entityframeworktutorial.net
سوالات متداول
EF Core بهطور رسمی از دیتابیسهایی مانند SQL Server، SQLite، PostgreSQL، MySQL، MariaDB، و Oracle (با providerهای جداگانه) پشتیبانی میکند.
بستگی به پروژه دارد. اگر پایگاه داده از قبل وجود دارد، روش Database First مناسبتر است. در صورتی که طراحی نرمافزار از صفر شروع میشود و مدلهای دامنه در اولویت هستند، Code First انتخاب بهتری است.
– Include() برای بارگذاری eager یک navigation property استفاده میشود.
– ThenInclude() برای بارگذاری navigation propertyهای تو در تو (nested navigation) بعد از Include() بهکار میرود.

دیدگاهتان را بنویسید