
آموزش شروع به کار با Entity Framework Core
آموزش شروع به کار با Entity Framework Core یکی دیگر از آموزش های گروه آموزشی پرووید می باشد که در این قسمت آن را به شما معرفی می کنیم. این بسته ی آموزشی نیز یکی از دوره های آموزشی دیگر که در حوزه ی فارسی سازی آموزش های انگلیسی تنظیم شده است می باشد. عنوان این بسته ی آموزشی شروع به کار با Entity Framework Core است که با نام اصلی Entity Framework Core - Getting Started از شرکت Pluralsight منتشر شده است.
Entity Framework چیست؟
Entity Framework یک object-relational mapper که به برنامه نویسان دات نت این امکان را می دهد که با داده های بانک های اطلاعاتی در قالب Object های محیط شی گرا کار کنند. به عبارت دیگر، دیگر نیازی به نوشتن کدهای دسترسی به داده ها که در ADO.NET نوشته می شوند نیست.

قدرت بسیار بالای Entity Framework در انجام وظایف اولیه شبیه عملیات CRUD، استفاده از LINQ، استفاده از Stored Procedure ها، استفاده از View ها، TVF ها، در دسترس بودن Entity SQL و … از ویژگی هایی ست که این تکنولوژی بسیار قدرتمند در اختیار توسعه دهندگان نرم افزار قرار می دهد.
Entity Framework Core چیست؟
Entity Framework Core جدیدترین تکنولوژی مایکروسافت برای ساخت لایه ی Data Access در برنامه ی cross-platform می باشد. این نسخه از Entity Framework یک نسخه ی سبک وزن، قابل گسترش و cross-platform می باشد.

در مقایسه با ورژن ششم Entity Framework بهبودهایی در EF Core 2.0 انجام شده است. علاوه بر این، بسیاری از API های EF Core 2.0 با EF 6 مشابه هستند.
ایجاد و نگهداری دیتابیس در پروژههای .NET
در بسیاری از برنامههای مبتنی بر .NET، اطلاعات باید در یک دیتابیس ذخیره شوند تا در اجراهای بعدی نیز در دسترس باقی بمانند. Entity Framework Core ابزارهایی برای ارتباط میان مدلهای شیگرا و ساختار پایگاه داده فراهم میکند و به توسعهدهنده اجازه میدهد بخش زیادی از عملیات دسترسی به داده را با استفاده از C# انجام دهد. این روش میتواند نیاز به نوشتن دستی بسیاری از دستورات تکراری SQL را کاهش دهد و سازماندهی منطق مربوط به دادهها را در پروژه سادهتر کند.
طراحی مدل داده یکی از مراحل مهم در توسعه برنامههایی است که با اطلاعات ساختاریافته کار میکنند. مدل باید موجودیتهای اصلی و ارتباط میان آنها را به شکلی مناسب نمایش دهد تا عملیات ذخیرهسازی و بازیابی اطلاعات با نیازهای برنامه هماهنگ باشد. Entity Framework Core امکان تعریف مدلها و نگاشت آنها به ساختار دیتابیس را فراهم میکند. شناخت این فرایند برای برنامهنویسانی که میخواهند پروژههای .NET خود را با یک روش ساختاریافته برای مدیریت داده توسعه دهند، مفید است.
Migration در Entity Framework Core و مدیریت تغییرات دیتابیس
ساختار دیتابیس در طول توسعه نرمافزار ممکن است بارها تغییر کند. اضافه شدن یک ویژگی جدید، تغییر مدل موجود یا تعریف ارتباط تازه میان موجودیتها میتواند به تغییر ساختار جدولها و ستونها نیاز داشته باشد. Migration در Entity Framework Core راهکاری برای ثبت و اعمال تغییرات مدل در ساختار دیتابیس است. این قابلیت به توسعهدهندگان کمک میکند تغییرات موردنیاز را به شکل مرحلهای مدیریت کنند و ارتباط میان مدل برنامه و ساختار پایگاه داده را حفظ کنند.
استفاده درست از Migration باعث میشود تغییرات ساختاری دیتابیس قابل ردیابیتر باشند و توسعهدهنده بتواند روند تکامل مدل را بهتر مدیریت کند. در پروژههای تیمی نیز ثبت تغییرات اهمیت دارد، زیرا اعضای تیم باید بتوانند ساختار دیتابیس را با نسخه مورد انتظار برنامه هماهنگ نگه دارند. آشنایی با Mapping و Migration در EF Core به برنامهنویسان کمک میکند از تغییرات پراکنده و مدیریت دستی غیرضروری ساختار پایگاه داده فاصله بگیرند و فرایند توسعه را منظمتر پیش ببرند.
تست برنامههای مبتنی بر Entity Framework Core
تست کردن لایه دسترسی به داده بخش مهمی از اطمینان از رفتار صحیح یک برنامه است. برنامههایی که از Entity Framework Core استفاده میکنند، باید در کنار منطق تجاری، نحوه خواندن و نوشتن دادهها را نیز بهدرستی مدیریت کنند. بررسی این بخشها میتواند به شناسایی خطاهایی مانند ذخیرهسازی نادرست اطلاعات، اشتباه در ارتباط میان موجودیتها یا نتایج نامطلوب پرسوجوها کمک کند. انتخاب روش تست مناسب به ساختار برنامه و نوع وابستگی آن به دیتابیس بستگی دارد.
EF Core امکان استفاده از InMemory Provider را برای برخی سناریوهای تست فراهم میکند. این Provider به اجرای تستهایی کمک میکند که به یک نمونه واقعی از دیتابیس وابسته نیستند، اما رفتار آن دقیقاً معادل همه دیتابیسهای رابطهای نیست. بنابراین، توسعهدهنده باید متناسب با هدف تست تصمیم بگیرد از چه روشی استفاده کند. شناخت این تفاوتها به برنامهنویسان کمک میکند تستهایی هدفمندتر بنویسند و محدودیتهای محیط تست را هنگام ارزیابی رفتار برنامه در نظر بگیرند.
استفاده از Entity Framework Core در انواع برنامههای .NET
Entity Framework Core را میتوان در سناریوهای مختلف توسعه نرمافزار با .NET به کار گرفت. بسته به ساختار پروژه، لایه دسترسی به داده ممکن است در یک برنامه دسکتاپ، یک اپلیکیشن کلاینت یا یک برنامه وب مورد استفاده قرار گیرد. آشنایی با نحوه ادغام EF Core در این محیطها به توسعهدهندگان کمک میکند تصمیم بگیرند مدیریت ارتباط با دیتابیس را چگونه در معماری برنامه سازماندهی کنند. انتخاب ساختار مناسب میتواند جداسازی مسئولیتها و نگهداری کد را سادهتر کند.
در پروژههای وب مبتنی بر ASP.NET Core، Entity Framework Core میتواند برای اجرای عملیات پایگاه داده در کنار منطق برنامه استفاده شود. همچنین ابزارهای مرتبط با EF Core در ایجاد مدل، مدیریت Migration و بررسی ساختار پروژه نقش دارند. شناخت نحوه استفاده از این قابلیتها در محیطهای مختلف .NET به برنامهنویس کمک میکند راهکار متناسب با نیاز پروژه را انتخاب کند. این دانش برای افرادی مفید است که میخواهند مدیریت داده را در برنامههای کاربردی خود با رویکردی منسجمتر پیادهسازی کنند.
سرفصل مطالب آموزش ویدئویی شروع به کار با Entity Framework Core
فصل اول: مقدمه دوره آموزشی
- مقدمه
فصل دوم: معرفی یک نسخه جدید و سبک وزن از Entity Framework
- مقدمه
- مقدمه دوره آموزشی
- مقدمه فصل
- Entity Framework چیست؟
- Entity Framework Core چیست؟
- چه قابلیت هایی از Entity Framework 6 به Entity Framework Core نمی آیند؟
- Entity Framework چگونه کار می کند؟
- قابلیت های مشابه Entity Framework در Entity Framework Core
- قابلیت های جدید Entity Framework Core
- چه اتفاقی برای Entity Framework 6 خواهد افتاد؟
- جمع بندی
- منابع
فصل سوم: ایجاد کردن یک Data Model و دیتابیس با استفاده از Entity Framework Core
- مقدمه
- مقدمه فصل
- ایجاد کردن Solution
- اضافه کردن Domain Class ها
- اضافه کردن Entity Framework Core با استفاده از Nuget Package Manager
- اضافه کردن Entity Framework Core با استفاده از دستورات PowerShell
- ایجاد کردن Data Model
- تنظیم کردن Data Provider و Connection String
- بررسی Migration ها در Entity Framework Core
- اضافه کردن اولین Migration
- بررسی Scripting و ایجاد کردن یک Script از درون Migration
- ایجاد کردن دیتابیس به طور مستقیم با استفاده از Migration
- ایجاد کردن دوباره Model و دیتابیس در .NET Core
- استفاده کردن از .NET Core CLI و Migration ها در Entity Framework Core
- جمع بندی
- منابع
فصل چهارم: بررسی Mapping ها و Migration در Entity Framework Core
- مقدمه
- مقدمه فصل
- بررسی رابطه های Many-to-Many در Entity Framework Core
- ایجاد کردن یک رابطه Many-to-Many
- ایجاد کردن یک رابطه One-to-One
- ایجاد Script و Migration پس از تغییرات ایجاد شده بر روی Model
- بررسی دستورات Scaffolding در Migration ها
- Scaffold کردن یک Model از یک دیتابیس از قبل موجود
- جمع بندی
- منابع
فصل پنجم: ارتباط برقرار کردن با Model در Entity Framework Core
- مقدمه
- مقدمه فصل
- درج کردن Object های ساده
- استفاده از Batch Operation ها در زمان ذخیره کردن
- Query گرفتن از Object های ساده
- عدم برگرداندن تمامی سطرها
- به روزرسانی کردن Object های ساده
- بررسی Disconnected Update ها
- حذف کردن Object ها با استفاده از Entity Framework Core
- انجام Query با استفاده از Raw SQL و Stored Procedure ها
- ایجاد کردن Custom Function ها در LINQ برای Query گرفتن در Entity Framework Core
- اجرا کردن Raw SQL برای Non-query Command ها
- جمع بندی
- منابع
فصل ششم: Query گرفتن و ذخیره کردن داده های مرتبط و یا Related Data
- مقدمه
- مقدمه فصل
- تغییراتی که بر روی Solution از فصل های قبل اتفاق افتاد.
- درج کردن Related Data ها و مباحث اولیه
- Query گرفتن از Related Data ها و Eager Loading
- بازیابی Related Data ها با استفاده از Projection
- بارگذاری کردن Related Data ها به صورت Explicit
- استفاده از Related Data برای فیلتر کردن Object ها
- بررسی رفتار Entity Framework Core و Disconnected Graph ها
- تغییرات و موارد اضافه شده به Change Tracker
- جمع بندی
فصل هفتم: استفاده از Entity Framework Core در Client Application ها
- مقدمه
- مقدمه فصل
- اضافه کردن مقداری Logic
- بررسی Entity Framework Core در یک Client Side Application با استفاده از WPF
- الگوهای مربوط به Entity Framework Core در Connected Application ها
- نکات
- نکاتی برای پیاده سازی روابط Many-to-Many در Entity Framework Core
- پیاده سازی Universal Windows Platform Application ها با استفاده از Entity Framework Core
- کاربرد Entity Framework Core در UWP
- خلاصه
- جمع بندی
- منابع
فصل هشتم: استفاده از Entity Framework Core در ASP.NET Core
- مقدمه
- مقدمه فصل
- بررسی پروژه های Entity Framework Core و ASP.NET Core
- بررسی ترکیب کردن Entity Framework Core با ASP.NET Core
- مرتبط کردن SamuraiContext و Web API در پروژه
- طراحی کردن Logic در Entity Framework Core برای Disconnected Access
- ایجاد کردن Web API Controller ها
- بررسی کردن Web API به صورت عملی
- جمع بندی
- منابع
فصل نهم: انجام Test در Entity Framework و استفاده از InMemory Provider
- مقدمه
- مقدمه فصل
- Test کردن با استفاده از InMemory Provider
- ریفکتور کردن برنامه WPF برای استفاده از Provider صحیح
- Test کردن برنامه های ASP.NET Core
- استفاده کردن از InMemory Provider برای تست کردن متدهایی که از Entity Framework Core استفاده می کنند.
- جمع بندی
- منابع
فصل دهم: استفاده از Entity Framework Core در سناریوهای Cross Platform و نگاهی به Tooling های آینده
- مقدمه
- مقدمه فصل
- استفاده از Entity Framework Core و .NET Core و پشتیبانی از فایلهای csproj درVisual Studio 2017
- جایگزین کردن Solution ها از SQL Server به SQLite
- اجرا کردن Migration ها و Test ها با Visual Studio 2017
- استفاده از Entity Framework Core در Visual Studio Code
- ارتباط با Entity Framework Core و استفاده از Raw Data ها در Visual Studio Code
- کدنویسی و Debugg کردن Entity Framework Core در OSX با استفاده از PostgreSQL
- بررسی داده های ایجاد شده با Entity Framework Core در OSX
- جمع بندی
- مهمترین نکات در رابطه با EF Core
- منابع






