آموزش Dapper - یک ORM سبک و سریع برای کار با دیتابیس در MVC

توسط: محسن درم بخت | منتشر شده در 1395/10/25 | بازدید : 20280 بار | زمان مطالعه : 12 دقیقه

همیشه یکی از مهمترین قسمت های برنامه نویسی، نحوه ارتباط برنامه نوشته شده و دیتابیس می باشد. این ارتباط به منظور اجرای دستورات CRUD  می باشد. از روش های مختلفی از قبیل ADO.NET Classic یا Entity Framework برای این کار استفاده می کنیم. در این مقاله می خواهیم با ORM ی آشنا شویم که این ارتباط را بسیار خوب برقرار می کند و دارای سرعت بسیار خوبی در ایجاد ارتباط با دیتابیس و اجرای دستورات است. اگر شما قصد دارید عملیات CRUD را با Stored Procedure ها کنترل نمایید، Dapper یکی از بهترین پیشنهادها می باشد. 

Dapper چیست؟

Dapper یک ORM کوچک، سبک و سریع می باشد که دارای محبوبیت زیادی است که وظیفه آن مدیریت ارتباط بین محیط برنامه نویسی و دیتابیس می باشد. شما با کمک Dappe می توانید به سادگی دستورات SQL خود را در قالب Stored Procedure و یا دستورات مستقیم SQL اجرا نمائید. Dapper کمک می کند قسمت هایی مانند مدیریت Connection ها، اجرا Command های SQL ای و همچنین تبدیل نتایج درخواست (Select Result) به ViewModel بسیار ساده و سریع انجام شود. در ادامه می خواهیم با نحوه کار Dapper به صورت مرحله به مرحله در یک پروژه آشنا شویم و در پایان  این مقاله شما بتوانید براحتی از Dapper استفاده نمایید.

دوره رایگان آموزش کامل Dapper

آموزش کامل و حرفه ای ASP.NET Core 5

 

1.برای شروع یک پروژه جدید بر روی Visual Studio طبق تصویر زیر ایجاد نمایید.


 

 

2.یک پروژه ASP.NET انتخاب و نام پروژه و محل ذخیره آن را انتخاب می کنیم.

 

3.در مرحله بعد نوع پروژه را MVC انتخاب می کنیم و روی OK کلیک می کنیم.

ی کنیم.

 

4.افزودن Dapper از طریق Nuget Package

 

مشاهده دوره رایگان آموزش Dapper

5.در این صفحه کلمه Dapper را جستجو می نماییم. سپس اولین رکورد ظاهر شده را طبق تصویر انتخاب نموده و در سمت راست روی Install کلیک می نماییم.

 

حتما در پایان نصب به پنجره Output توجه نمایید تا از نصب کامل Dapper مطمئین گردید. پس از نصب Dapper به سراغ ساخت یک دیتابیس برای تست عملیات CRUD می رویم. عملیا CRUD یعنی INSERT ، UPDATE , DELETE و SELECT. یعنی چهار عمل اصلی که در همه نرم افزاهایی که ما می نویسیم  تقریبا با آن سروکار داریم.

برای تست یک دیتابیس با نام DapperSampleDB  در MS SQL SERVER  می سازیم. در ادامه یک جدول نیز با نام Users  با ستون های زیر اضافه می نماییم.

نکته :لینک دانلود Source پروژه و همچنین Script مربوط به ساخت DB در آخر مقاله وجود دارد.

در این پروژه می خواهیم همه عملیات CRUD را در داخل Stored Procedure بنویسیم. پس برای اضافه نمودن User جدید یک SP به دیتابیس با نام AddUser اضافه می نماییم.

حالا به سراغ پروژه خود در Visual Studio  می رویم تا برای انجام عمل افرودن User جدید Controller  و View مربوطه را طبق تصاویر زیر ایجاد نماییم. قبل از این کار نیاز است تا یک Class برای نگه داشتن اطلاعات User در پوشه Models با نام UserViewModel ایجاد نماییم.

پس از اضافه نمودن این کلاس Controller مربوط به User را با نام UserController از نوع Empty ایجاد می نماییم. در Action مربوطه به Create از نوع HttpGet چیز خاصی نیاز نیست که بنویسیم. ولی در قسمت HttpPost که اطلاعات از View مربوطه برای ذخیره شدن ارسال می شود کد مربوطه به ذخیره سازی را با کمک Dapper اضافه می نماییم.

نکته : نباید به صورت مستقیم Code های مربوط به عملیات CRUD را در داخل Controller ها نوشت و باید حتما این کدها به داخل کلاس های Repository منتقل گردند. اینجا برای ساده کردن نحوه کار با Dapper کدها به صورت مستقیم در Controller نوشته شده اند.

طبق تصویر بالا مشاهده می کنید در ابتدا Connection به DB را با استفاده از کلاس IDbConnection آماده می نماییم. سپس در داخل  Action Create با کمک کلاس DynamicParameters پارامترهای مربوط به  SP AddUser را اضافه می نماییم. در نهایت هم با استفاده از کلاس SqlMapper و متد Execute دستور خود را اجرا می نماییم  و اطلاعات در جدول مربوطه Insert می شود. حتما بعد از اجرای موفق به سراغ جدول مربوطه در SQL SERVER بروید و از درج صحیح داده ها مطمئن شوید.

تا اینجا فقط Controller و Action ما آماده شده است. ما برای وارد کردن اطلاعات توسط کاربر نیاز به یک View هم داریم. پس طبق تصویر زیر در یک قسمت از Action Create خود کلیک راست نموده و Add View را انتخاب می نماییم. سپس در پنجره ظاهر شده طبق گزینه های تصویر زیر عمل کرده و View خود را اضافه می نماییم.

حالا پروژه را با فشردن کلید F5 اجرا نمایید و در View ظاهر شده در مرورگر خود اطلاعات را وارد نمایید و بر روی Create طبق تصویر زیر کلیک نمایید.

 

حالا به سراغ نمایش لیست از User ها می رویم. در این تمرین به دلیل شباهت Delete و Update با Insert ، عملیات مربوط به آنها آورده نشده است و به سراغ عملیات Select All رفته ایم. در ابتدا برای نمایش لیستی از User ها یک Action با نام Index اضافه می نماییم و کد زیر را برای آن می نویسیم.

همچنین برای این کار در دیتابیس هم SP مربوطه را با نام GetAllUsers اضافه می نمایم که به صورت زیر می باشد :

در پایان هم برای این Action یک View می سازیم تا اطلاعات جدول Users را مشاهده نماییم . برای افزودن View نیز مانند View قبل روی َAction Index کلیک می نماییم و مانند تصویر زیر View خود را اضافه می نماییم و برنامه خود را اجرا و تست می کنیم.

ظاهر خروجی این View نیز به شکل زیر خواهد بود.

 

جمع بندی : در زمان هایی که شما نمی خواهید از EntityFrame Work استفاده نمایید و قصد دارید همه عملیات CRUD خود را توسط Stored Procedure انجام دهید یکی از بهترین انتخاب ها استفاده از Dapper می باشد.

 

لینک دانلود پروژه و دیتابیس

 

مشاهده دوره رایگان آموزش کامل Dapper

آموزش کامل و حرفه ای ASP.NET Core 5

 

دوره‌های آنلاین برنامه‌نویسی لیست دوره‌ها