با عرض سلام و وقت بخیر خدمت کاربران محترم سایت ویرگول، در این مقاله آموزشی به موضوع نحوه ساخت و استفاده از الگوی Repository و Generic Repository به همراه Unit Of Work پرداخته می شود و سعی شده یک آموزش کاربردی و پروژه محور از بحث Repository ارایه گردد.ایده این سری مقاله های آموزشی از این موضوع سرچشمه می گیرد که بخشی از خوانندگان وجود دارد که به محتوای نوشتاری آنلاین بهتر پاسخ می دهند و ترجیج می دهند مهارت های جدید را به سرعت از طریق خواندن افزایش دهند.این سری اموزش ها با ارایه پکیج آموزش های کاربردی در خصوص C# asp.net core آغاز می شود که انتظار می رود با واکنش مثبت کاربران همراه شود.
توجه: این مقاله به مرور زمان، ویرایش و یا تکمیل میشود!
تقاضا: در صورتی که با مشکل تایپی، دستوری و یا مفهومی در این مقاله برخورد کردید، از شما دوست عزیز و گرامی، صمیمانه تقاضا میکنم که اینجانب را مطلع کرده، تا نسبت به تصحیح و یا تکمیل آن، در اسرع وقت، اقدام نمایم.
با کمال تشکر جواد جهانگیری
شماره تلفن همراه: 09149431772
نشانی پست الکترونیکی: javad.jahangiri.niopdc@gmail.com
فیلمهای آموزشی در آپارات:جواد جهانگیری (CTO) - آپارات
فیلم آموزشی در یوتویب: javad jahangiri - YouTube
نسخه مقاله: ۱.۱ - تاریخ بروزرسانی: 1400/09/09
در حقیقت Repository ها بر روی کالکشنی از داده ها کار می کند که تمامی عملیات CRUD و جستجو و فیلتر کردن داده ها را برای ان پیاده سازی می کند و هر کسی بخواهد با ان کالکشن اطلاعات کار کند در حقیقت این Repository بعنوان یک واسط می شود که با آن کار کند معمولا برای EF Core از Pattern مربوط به Repository استفاده می کنند که از مزایا این روش در کدنویسی می توان به :
اشاره کرد در اینجا می خواهم به یک نکته مهم اشاره کنم که Service با Repository چه تفاوتی دارد سرویس درحقیقت منطق برنامه (logic) برنامه را پیداسازی می کند اما Repository بر روی کالکشن ای از داده کار می کند سرویس می تواند در دل خودش از چندتا Repository و یا Service دیگر استفاده کند اما Repository فقط بر روی یک کالکشن ای داده کار می کند
برای توضیح این موضوع یک پروژه از نوع C# asp.net core web app (Mode-View-Controller) ایجاد می کنیم
یک اسم دلخواه به پروژه می دهیم
پروژه رو بر روی فریم ورک دانت کور 5 تنظیم می کنیم
در نهایت یک پروژه به شرح ذیل ایجاد می کنیم
یک Model بنام MyModel به شرح ذیل ایجاد می کنیم که دارای دو property به شرح ذیل می باشد:
دو پوشه بنام های Repositories و IRepositories به پروژه اضافه می کنیم و در پوشه IRepositories یک این Interface به شرح ذیل ایجاد می کنیم:
سپس یک کلاس MyModelRepository در پوشه Repositories ایجاد می کنیم که اینترفیس IMyModelRepository را پیاده سازی کند:
خوب حالا نوبت به تزریق سرویس های می رسد وارد فایل Startup پروژه شده و در قسمت تنظیمات سرویس های کدها زیر را اضافه می کنیم
حالا اگر در هر جای پروژه به ابجکتی از نوع MyModelRepository نیاز باشد توسط دانت کور ساخته و تحویل کلاسی که به ان وابستگی دارد می شود
وارد کنترلر برنامه شده و سرویس های در تابع سازنده به شرح ذیل تزریق می کنیم
و در نهایت در اکشن index بصورت ذیل سرویس را فراخوانی می کنیم
برای دریافت سورس پروژه می توانید از طریق گیت های بنده اقدام کنید
در دوره های آموزش تضمینی مجتمع فنی ارومیه که به صورت خصوصی و عمومی در دو شیوه حضوری و آنلاین برگزار می شود سرفصل های بسیار متنوع و کاربردی را بصورت پروژه محور آموزش داده می شود تا شخص کارآموز بتواند بلافاصله پس از اتمام این دوره در کمترین زمان ممکن وارد بازار کار شود.
آموزش تخصص ماست با ما حرفه ای شوید
جهت مشاوره با شماره 09149431772 در ارتباط باشید ...