Entity Framework Core چیست؟

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

EF Core نسخه جدیدتر Entity Framework است که مایکروسافت آن را برای توسعه برنامه‌های مدرن .NET ارائه کرده است. علاوه بر این، EF Core از قابلیت Cross-Platform پشتیبانی می‌کند. به همین دلیل، برنامه‌های ساخته‌شده با آن می‌توانند روی ویندوز، لینوکس و macOS اجرا شوند. همچنین، EF Core در مقایسه با نسل قبلی Entity Framework سبک‌تر و توسعه‌پذیرتر است. از سوی دیگر، این فریم‌ورک روش ساده‌تری برای ارتباط با پایگاه‌داده ارائه می‌دهد. در حال حاضر، EF Core یکی از ORMهای اصلی مایکروسافت برای توسعه‌دهندگان .NET است.

ORM چیست؟

ORM یک لایه واسط میان کلاس‌های زبان برنامه‌نویسی و داده‌های ذخیره‌شده در پایگاه‌داده است. به عبارت دیگر، وظیفه ORM نگاشت اطلاعات موجود در پایگاه‌داده روی کلاس‌های برنامه است. قبل از پیدایش ORM، برنامه‌نویسان این کار را به‌صورت دستی انجام می‌دادند. برای مثال، نام جدول‌ها، ستون‌ها و نوع داده‌ها باید به‌صورت دستی در کد مشخص می‌شد. در نتیجه، انجام این فرایند طولانی و همراه با احتمال خطا بود.

علاوه بر این، حتی یک تغییر کوچک در نام ستون‌ها یا ساختار جدول‌ها می‌توانست باعث ایجاد خطا شود. گاهی نیز این خطاها باعث می‌شدند قسمت‌هایی از برنامه از کار بیفتند. به همین دلیل، امروزه بیشتر برنامه‌نویسان از ORMها استفاده می‌کنند.

EF Core از چه پایگاه‌داده‌هایی پشتیبانی می‌کند؟

Entity Framework Core از تعداد زیادی پایگاه‌داده پشتیبانی می‌کند. با این حال، برای اتصال به هر پایگاه‌داده باید Provider یا پکیج NuGet مناسب آن را نصب کنیم. برای مثال، برای کار با SQL Server از پکیج Microsoft.EntityFrameworkCore.SqlServer استفاده می‌شود. علاوه بر این، هر Provider ممکن است فقط از نسخه‌های مشخصی از EF Core پشتیبانی کند. بنابراین، قبل از نصب هر پکیج باید نسخه سازگار آن را بررسی کنید.

پکیج‌های رسمی مایکروسافت

ابتدا، می‌توانیم از Providerهای رسمی مایکروسافت استفاده کنیم. در واقع، این پکیج‌ها برای پایگاه‌داده‌های پرکاربرد مایکروسافت و SQLite ارائه شده‌اند.

NuGet PackageSupported database enginesFor EF Core
Microsoft.EntityFrameworkCore.SqlServerAzure SQL and SQL Server 2012 onwards6, 7, 8
Microsoft.EntityFrameworkCore.SqliteSQLite 3.7 onwards6, 7, 8
Microsoft.EntityFrameworkCore.InMemoryEF Core in-memory database6, 7, 8
Microsoft.EntityFrameworkCore.CosmosAzure Cosmos DB SQL API6, 7, 8

Providerهای پایگاه‌داده‌های پرکاربرد

علاوه بر پکیج‌های رسمی مایکروسافت، Providerهای دیگری نیز برای پایگاه‌داده‌های معروف وجود دارند. برای مثال، PostgreSQL، MySQL، MariaDB، Oracle و MongoDB دارای Providerهای مخصوص هستند.

NuGet PackageSupported database enginesFor EF Core
Npgsql.EntityFrameworkCore.PostgreSQLPostgreSQL6, 7, 8
Pomelo.EntityFrameworkCore.MySqlMySQL, MariaDB6, 7, 8
MySql.EntityFrameworkCoreMySQL6, 7
Oracle.EntityFrameworkCoreOracle DB 11.2 onwards6, 7
MongoDB.EntityFrameworkCoreMongoDB8
Devart.Data.MySql.EFCoreMySQL 5 onwards6, 7, 8
Devart.Data.Oracle.EFCoreOracle DB 9.2.0.4 onwards6, 7, 8
Devart.Data.PostgreSQL.EFCorePostgreSQL 8.0 onwards6, 7, 8
Devart.Data.SQLite.EFCoreSQLite 3 onwards6, 7, 8
Devart.Data.DB2.EFCoreDB26, 7, 8

Providerهای سرویس‌ها و نرم‌افزارهای تجاری

از سوی دیگر، برخی Providerها برای اتصال EF Core به سرویس‌ها و نرم‌افزارهای تجاری ساخته شده‌اند. برای مثال، می‌توان به Dynamics 365، Salesforce، Magento و QuickBooks اشاره کرد.

NuGet PackageSupported database enginesFor EF Core
Devart.Data.Bigcommerce.EFCoreBigCommerce6, 7, 8
Devart.Data.Dynamics.EFCoreMicrosoft Dynamics 3656, 7, 8
Devart.Data.FreshBooks.EFCoreFreshBooks6, 7, 8
Devart.Data.Magento.EFCoreMagento6, 7, 8
Devart.Data.MailChimp.EFCoreMailchimp6, 7, 8
Devart.Data.QuickBooks.EFCoreQuickBooks6, 7, 8
Devart.Data.Salesforce.EFCoreSalesforce6, 7, 8
Devart.Data.ExactTarget.EFCoreSalesforce MC (ExactTarget)6, 7, 8
Devart.Data.Sugar.EFCoreSugarCRM6, 7, 8
Devart.Data.Zoho.EFCoreZoho CRM6, 7, 8
MASES.EntityFrameworkCore.KNetApache Kafka6, 7, 8

سایر Providerهای EF Core

در نهایت، Providerهای دیگری نیز برای پایگاه‌داده‌ها و روش‌های ذخیره‌سازی خاص وجود دارند. با این حال، بعضی از این پکیج‌ها قدیمی یا آزمایشی هستند. بنابراین، قبل از استفاده باید وضعیت توسعه و نسخه سازگار آن‌ها بررسی شود.

NuGet PackageSupported database enginesFor EF Core
InterBaseInterBase6
FirebirdSql.EntityFrameworkCore.FirebirdFirebird 3.0 onwards8
IBM.EntityFrameworkCoreDb2, Informix6
IBM.EntityFrameworkCore-InxDb2, Informix6
IBM.EntityFrameworkCore-osxDb2, Informix6
EntityFrameworkCore.JetMicrosoft Access files6, 7, 8 (Preview)
Google.Client.EntityFrameworkCore.SpannerGoogle Cloud Spanner6
Teradata.EntityFrameworkCoreTeradata Database 16.10 onwards3
FileContextCoreStores data in files3
FileBaseContextStores tables in files7, 8
EntityFrameworkCore.SqlServerCompact35SQL Server Compact 3.52
EntityFrameworkCore.SqlServerCompact40SQL Server Compact 4.02
EntityFrameworkCore.OpenEdgeProgress OpenEdge2

ویژگی‌های کلیدی Entity Framework Core

EF Core ویژگی‌های مختلفی برای ساده‌ترکردن ارتباط برنامه با پایگاه‌داده ارائه می‌دهد. در ادامه، مهم‌ترین ویژگی‌های آن را بررسی می‌کنیم.

آسان‌تر شدن تغییر پایگاه‌داده

برای مثال، ممکن است ابتدا برنامه خود را با پایگاه‌داده SQL Server ایجاد کنید. سپس، بعد از مدتی تصمیم بگیرید پایگاه‌داده را به SQLite تغییر دهید. در این شرایط، EF Core فرایند تغییر Provider پایگاه‌داده را ساده‌تر می‌کند. با این حال، تغییر پایگاه‌داده همیشه کاملاً خودکار نیست. در واقع، ممکن است بعضی از قسمت‌های وابسته به امکانات خاص یک پایگاه‌داده همچنان به تغییر نیاز داشته باشند.

چندسکویی بودن EF Core

یکی دیگر از مزایای EF Core، قابلیت Cross-Platform آن است. بنابراین، برنامه‌های ساخته‌شده با EF Core می‌توانند روی سیستم‌عامل‌های مختلف اجرا شوند. برای مثال، این فریم‌ورک روی ویندوز، لینوکس و macOS قابل استفاده است.

کوئری‌نویسی با استفاده از LINQ

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

پشتیبانی از پایگاه‌داده‌های مختلف

همان‌طور که در جدول‌ها مشاهده کردید، EF Core از پایگاه‌داده‌های مختلف پشتیبانی می‌کند. برای مثال، SQL Server، SQLite، PostgreSQL، MySQL، Oracle و Azure Cosmos DB دارای Providerهای مخصوص هستند. علاوه بر این، شرکت‌ها و توسعه‌دهندگان دیگر نیز Providerهای مختلفی برای EF Core ارائه کرده‌اند. بنابراین، توسعه‌دهنده می‌تواند متناسب با نیاز پروژه، Provider مناسب را انتخاب کند.

متن‌باز بودن EF Core

یکی دیگر از مزایای Entity Framework Core، متن‌باز یا Open Source بودن آن است. در نتیجه، کد منبع EF Core در GitHub در دسترس قرار دارد. همچنین، توسعه‌دهندگان می‌توانند در توسعه آن مشارکت کنند. علاوه بر این، استفاده از EF Core رایگان است. البته، باید توجه داشت که Entity Framework 6 نیز اکنون به‌صورت متن‌باز ارائه می‌شود. بنابراین، متن‌باز بودن به‌تنهایی تفاوت اصلی میان این دو نسخه نیست.

کاهش نیاز به نوشتن کد SQL

EF Core به شما اجازه می‌دهد بخش زیادی از منطق مربوط به داده‌ها را با زبان C# پیاده‌سازی کنید. در نتیجه، در بسیاری از قسمت‌های برنامه نیازی به نوشتن مستقیم SQL نخواهید داشت. با این حال، EF Core امکان اجرای SQL خام را نیز فراهم می‌کند. بنابراین، در شرایط خاص یا برای بعضی از کوئری‌های پیچیده همچنان می‌توان از دستورهای SQL استفاده کرد.

جمع‌بندی

در نهایت، EF Core ارتباط میان برنامه‌های .NET و پایگاه‌داده را ساده‌تر می‌کند. علاوه بر این، قابلیت‌هایی مانند LINQ، مدیریت ارتباط میان جدول‌ها و پیگیری تغییرات داده‌ها را در اختیار توسعه‌دهندگان قرار می‌دهد. بنابراین، استفاده از EF Core می‌تواند سرعت توسعه و نگهداری برنامه را افزایش دهد. به‌طور خلاصه، اگر با .NET و پایگاه‌داده‌های رابطه‌ای کار می‌کنید، EF Core یکی از ابزارهای مهم و کاربردی برای پروژه شما خواهد بود.

فایل ارائه

خرید از تهران آی تی به صورت آنلاین میباشد و لینک دانلود به صورت خودکار برای شما ایمیل میشود. همه گزینه‌ها همان فایل کامل را به شما می‌دهند. تفاوت فقط در نحوه جبران هزینه است؛ انتخاب با وجدان شماست. چنانچه نیاز به هرگونه سوال و یا کمک در خرید آنلاین داشتید با شماره 09121486770 تماس بگیرید. شماره کارت ما 6362141104352035 به نام محمدرضا احدیان میباشد.

فایل ارائه

مشاهده در آپارات یا یوتیوب

محتوای ویدیویی این صفحه در سایت قابل مشاهده است. اما اگر عادت دارید توی پلتفرم آپارات یا یوتیوب ویدیوها را مشاهده کنید، می‌توانید از دکمه‌های زیر استفاده کنید.

تماشای ویدیوی Entity Framework Core چیست؟ در آپارات و یوتیوب

اشتراک‌گذاری با یک کلیک

با یک کلیک، محتوای این صفحه را در شبکه‌های اجتماعی، ایمیل یا پیام‌رسان‌های مورد علاقه‌تان به‌سرعت به اشتراک بگذارید.

اشتراک‌گذاری صفحه Entity Framework Core چیست؟ در شبکه‌های اجتماعی

نظرات شما برای ما ارزشمند است

متاسفانه تاکنون پیامی برای این مطلب ثبت نشده است. شما اولین شخصی باشید که پیام می‌گذارد.

نظرات کاربران

فرم افزودن دیدگاه

با ارسال نظرات خود ما را در ایجاد محتوای بهتر کمک کنید.

با خدمات تهران آی تی آشنا شوید

تهران آی تی با افتخار خدمات زیر را ارائه می‌دهد.