آموزش کاربردی پیاده سازی الگوی Unit Of Work در Asp.Net Core

در این دوره آموزشی قصد داریم پیاده‌سازی الگوی Unit Of Work در  Asp.Net Core را آموزش دهیم.

اگر برنامه ای  داشته باشید که آنرا چند لایه تهیه کرده باشید نباید در هر لایه از آن از DbContext استفاده کنید. بلکه فقط یک بار از کلاس DbContext نمونه ایجاد می‌کنیم. برای حل این مشکل الگویی به نام الگوی Unit Of Work طراحی شده است که در لایه‌های مختلف برنامه یک unit of work به اشتراک گذاشته می‌شود.

ترجمه لفظی الگوی طراحی Unit of work الگوی طراحی واحد کار است. در این الگو تمام درخواست‌ها در یک صف قرار می‌گیرند و با پایان یافتن تمام کارها بانک به‌روز خواهد شد و دستور SaveChanges اجرا خواهد شد.
این روش مزیت‌های بسیاری دارد که یک نمونه از آن این است که کانکشنی که به بانک باز می‌شود کمترین تعداد را دارد و با همان کانکشن باز کلیه عملیات انجام می‌گیرد. مزیت دیگر این است که زمانی که از یک الگوی واحد کار استفاده می‌کنیم امکان بررسی خودکار تغییرات انجام‌شده بر روی یک Entity در لایه‌های مختلف به‌راحتی امکان‌پذیر است.

الگوی طراحی واحد کار به‌صورت خودکار از مفهوم Transaction استفاده می‌کند و اگر در حین فراخوانی متد SaveChanges مشکلی پیش بیاید کل عملیات Rollback خواهد شد و تغییری در بانک اطلاعاتی رخ نخواهد داد. پس یک تراکنش به ازای چند عمل داریم و نه یک تراکنش به ازای هر عمل.

در ضمن جهت یادگیری معماری Clean Architecture در قالب یک پروژه کامل اینجا کلیک کنید

 

Unit Of Work , Asp.Net Core , repository , الگوی Unit Of Work در Asp Core, asp.net core ,