Entity Framework Core چیست ؟ EF Core چه مزیت هایی دارد ؟ ORM چیست ؟ روش Code First چیست ؟ روش Database First چیست ؟ به چند روش می توانیم Entiry Framework Core را توسعه دهیم ؟ اگر به دنبال پاسخ این سوالات هستید به هیچ عنوان این مقاله آموزشی را از دست ندهید.
سرفصلهای پست
Entity Framework Core چیست
EntityFramework Core یک ORM چند سکویی (Cross Platform) هست که به ما این امکان را می دهد که بتوانیم با بانک های اطلاعاتی مختلف مثل SQL Server از طریق اشیاء NET. کار کنیم. این نسخه Entity Framework که بعد از Entity Framework 6 معرفی شد هم Open Sourse هست و هم Cross Platform و علاوه بر این سبک و قابل گسترش نیز هست خب حالا شاید این سوال برای شما پیش بیاد که ORM چیست ؟
در ادامه ی این مقاله با ORM یا (Object-Reletional Mapping) آشنا خواهید شد.
(Object-Reletionl Mapping)ORM چیست
ORM در واقع یک لایه مترجم بین زبان برنامه نویسی ما و پایگاه داده هست که این دو را به هم تبدیل می کند و به ما کمک میکند که بین زبان برنامه نویسی مون که سی شارپ هست و بانک اطلاعاتی مون که SQL Server هست ارتباط برقرار کنیم و تبادل اطلاعات داشته باشیم.
یکی از مهم ترین مزیت های ORM ها این هست که عملیات CRUD (Create-Read-Update-Delete) را به راحتی برای ما انجام می دهد. خب حالا در ادامه این مقاله با مزیت های Entity Framework Core آشنا خواهید شد.
مزیت های EntityFramework Core
-
آسان کردن تغییر بانک اطلاعاتی
وقتی شما با یک بانک اطلاعاتی مثل SQL Server کار می کنید و بعد از گذشت یک مدت میخواهید بانک اطلاعاتی تون را از SQL Server به مثلا SQLight تغییر بدید Entity Framework Core این کار را برای ما به راحتی انجام می دهد.
-
کوئری نویسی با استفاده از LINQ
با بهره گیری از Entity Framework می توانیم با استفاده از LINQ کوئری نویسی انجام دهیم. و با کوئری نویسی از طریق LINQ خطر حمله SQL Injection را تقریبا به صفر برسانیم.
-
OpenSource بودن
از دیگر مزایای EntityFrameworkCore می توانیم به Open sourse بودن یا مجانی بودن آن اشاره کنیم و نسخه EF Core در GitHup قابل دسترسی است و همین ویژگی Open Sourse یا مجانی بودن یکی از تفاوت های Entity Framework Core با Entity Framework 6 هست.
-
چند سکویی بودن
یکی دیگر از مزیت های Entity Framework Core این است که چند سکویی هست و قابلیت اجرا روی سیستم عامل های مختلف مثل Mac و Linux را داراست.
-
پشتیبانی از اکثر بانک های اطلاعاتی
Entity Framework Core نسبت Entiry Framework 6 از بانک های اطلاعاتی بیشتری پشتیبانی می کند و در نسخه Entity Framework Core پشتیبانی از بانک های اطلاعاتی NoSql هم افزوده شده است.
روش های توسعه Entity Framework Core
Entity Framework Core را می توانیم به دو روش توسعه دهیم:
- روش Code First
- روش Database First
در ادامه این مقاله از سایت میزفا با این دو روش به صورت کامل آشنا خواهید شد.
-
روش Code First چیست
در روش Code – First مطابق تصویری که برای شما قرار دادم به ازای هر جدول در Database یک کلاس یا Model تعریف می کنیم و درنهایت این کلاس ها ، جداول دیتابیس را می سازند و Property های هر کلاس هم ستون های این جداول را تشکیل می دهند.
-
روش Database First چیست
در روش Database-First همانند تصویری که برای شما قرار دادم ، ما یک پایگاه داده آماده داریم و این پایگاه داده ما تبدیل میشه به کلاس Context و کلاس های Entity که همون مدل های ما هستند.
امیدوارم که از این مقاله از سری مقالات اموزش ASP.NET Core 2 لذت برده باشید. در صورتی که سوالی داشتید در قسمت نظرات پاسخگوی شما خواهیم بود.
11 پاسخ
عالی بود تشکر
با سلام
دو تا سوال داشم
1- در جایی که حجم داده ها خیلی زیاده و سرعت خیلی مهمه استفاده از EF رو توصیه میکند .در واقع سوالم اینه که ADO.NET سرعت بیشتری داره یا EF ؟
2-وقتی مثلا حجم زیادی از داده قراره insert یا Update بشه و یا چندین فرایند همزمان از طریق چندیم کاربر روی یک داده مشترک اجرا بشه ، و به هر دلیلی این اتفاق نیافته ،EF جه راهکاری داره.یعنی اطمنان از اینکه عملیات 100 درصد تکمیل شده.(آیا اصولا این موضع ربطی به ORM داره؟)
سلام وقت بخیر ، سرعت ADO.NET بیشتر از EF Core است طبق چندین مقاله ای که مطالعه کردم. پس اگر خیلی performance براتون خیلی مهم هست می تونید از ADO استفاده کنید.
سلام
والا تا جایی که من میدونم سرعت EF code First خیلی بیشتر از ADO است.
میشه لطف کنید اون مقاله های که مطالعه کردید رو برای بنده ارسال کنید یا لینکش رو قرار بدید تا ما هم بخونیم !!!؟
سلام وقتتون بخیر
می تونید مقاله زیر را مطالعه کنید در این مقاله Entity Framework با ADO از نظر Performance مقایسه شده است.
https://exceptionnotfound.net/dapper-vs-entity-framework-vs-ado-net-performance-benchmarking/
عالییییییییییییی بود . یعنی عالی .
خیلی وقت بود دنبال این مدل اطلاعات کلی و مفید بودم که توی سایت شما دیدم
فقط می تونم بگم اطلاعات فوق العاده مفیدی بود
ممنون … خوش حالم براتون مفید بوده.
ای کاش کاملتر توضیح می دادید.
سعی کردم که در این مقاله مبحث entity framework رو به صورت کامل آموزش بدم در مقالات آینده به صورت عملی به مبحث Entity FrameworkCore خواهیم پرداخت.
با سلام
تشکر میکنم از مقاله خوبتون .
میخاستم مزایای EF Core نسبت به EF نسخه 6 رو بدونم.
با تشکر
با سلام … ممنون … CrossPlatform بودن و Open Sourse بودن EF 7 از جمله ویژگی های برجسته EF 7 نسبت به EF 6 هست.
EF 7 از پایگاه داده های بیشتری پشتیبانی میکند.