"> طریقه استفاده از Dapper ORM در سی شارپ | آموزش سی شارپ | ام اس پی سافت

طریقه استفاده از Dapper ORM در سی شارپ

Dapper ORM

در این مقاله میخواهیم راجب طریقه استفاده از Dapper ORM در سی شارپ صحبت کنیم. برای ساده تر کردن دسترسی به داده ها و اطمینان از عملکرد بالا ، از Dapper سبک و سورس باز استفاده می شود.

Dapper ORM

( Object relational mappers (ORMs ها به مدل طولانی برای حذف عدم تطابق مقاومت ظاهری مابین مدل های شیء زبان های برنامه نویسی و مدل های داده موجود در پایگاه های داده مورد استفاده قرار‌ می گیرند.

Dapper یک سورس باز  ORM است که توسط تیم Stack Overflow ساخته شده است.

Dapper در مقایسه با سایر ORM ها به دلیل وزن سبک بسیار سریع است.

Dapper با عملکرد و سهولت استفاده در ذهن ساخته شد. با استفاده از تراکنش ها، رویه های ذخیره شده و یا درج حجیم داده ها، از اتصال هر دو شیء ایستا و پویا پشتیبانی می کند.

نصب Dapper ORM در ویژوال استودیو

برای شروع استفاده از Dapper ، این مراحل را دنبال کنید:

  1.  ویژوال استودیو را باز کنید
  2.  روی File -> New -> Project کلیک کنید
  3. “Web -> ASP.Net Web Application” را از گفتگوی “پروژه جدید” انتخاب کنید
  4. نام پروژه وب را مشخص کنید
  5. قالب پروژه خالی را برای ASP.Net انتخاب کنید
  6. برای ذخیره پروژه ، روی OK کلیک کنید

این یک پروژه کاربردی وب خالی ASP.Net ایجاد می کند.

اگر NuGet نصب کرده اید ، می توانید Dapper را با استفاده از NuGet نصب کنید – فقط پروژه را در پنجره Solution Explorer انتخاب کنید ، بر روی “مدیریت بسته های NuGet …” کلیک راست کرده و Dapper را پیدا کنید.

سپس بر روی Install کلیک کنید تا نصب Dapper شروع شود.

CRUD in .Net using Dapper ORM

اکنون می خواهیم با استفاده از Dapper ، برخی از کدها را برای انجام عملیات CRUD در برابر یک پایگاه داده بنویسیم.

یک بانک اطلاعاتی به نام IDG در نظر بگیرید که حاوی جدولی به نام نویسنده با فیلدهای زیر است.

  • شناسه
  • نام کوچک
  • نام خانوادگی

برای سادگی در هنگام کار با Dapper باید یک entity class (کلاس POCO) برای این جدول پایگاه داده ایجاد کنید.

در اینجا entity class به نام نویسنده مطابق با Author table. در پایگاه داده IDG قرار دارد.

public class Author
    {
        public int Id { get; set; }
        public string FirstName { get; set; }
        public string LastName { get; set; }
    }

فرمت Query () در Dapper به شما امکان می دهد داده ها را از پایگاه داده بازیابی کنید و داده ها را در مدل Objectخود جمع کنید.

روش زیر تمام سوابق را از جدول نویسنده بازیابی می کند ، آنها را در حافظه ذخیره می کند و مجموعه را برمی گرداند.

public List<Author> ReadAll()
    {
         using (IDbConnection db = new SqlConnection(ConfigurationManager.ConnectionStrings[“AdventureWorks”].ConnectionString))
         {
             return db.Query<Author>
             (“Select * From Author”).ToList();
         }
    }

توجه داشته باشید که برای اعمال قدرت در چارچوب Dapper باید فضای نام Dapper را در برنامه خود وارد کنید.

روش زیر چگونگی جستجوی یک رکورد خاص را از Author table نشان می دهد.

public Author Find(int id)    
    {
        using (IDbConnection db = new SqlConnection(ConfigurationManager.ConnectionStrings [“AdventureWorks”].ConnectionString))
        {
            return db.Query<Author>(“Select * From Author “ + 
            WHERE Id = @Id”, new { id }).SingleOrDefault();
        }
    }

از روش Execute () چارچوب Dapper می توان برای درج ، به روزرسانی یا حذف داده ها در یک پایگاه داده استفاده کرد.

این روش یک عدد صحیح را برمی گرداند که به معنی تعداد ردیف هایی است که در اجرای پرس و جو تحت تأثیر قرار گرفته اند.

روش زیر نشان می دهد که چگونه می توانید با استفاده از چارچوب Dapper یک recordرا به روز کنید.

public int Update(Author author)
    {
        using (IDbConnection db = new SqlConnection(ConfigurationManager.ConnectionStrings [“AdventureWorks”].ConnectionString))
        {
            string sqlQuery ="UPDATE Author SET FirstName = @FirstName, " +
            “ LastName = @LastName “ + “WHERE Id = @Id”;
            int rowsAffected = db.Execute(sqlQuery, author);
            return rowsAffected;
        }
    }

همانطور که در قطعه کد بالا مشاهده می کنید ، روش Update () تعداد ردیف هایی را که تحت تأثیر قرار داده اند ، برمی گرداند ، یعنی تعداد رکوردهای به روز شده.

در این مثال ، فقط یکrecord به روز شده است و از این رو ، این روش با موفقیت ۱ باز می گردد.

مراحل ذخیره شده با استفاده از Dapper ORM

برای کار با روشهای ذخیره شده با استفاده از Dapper ، هنگام فراخوانی با Query یا Execute باید به روش صریح و روشن دستور فرمان را اشاره کرد.

در اینجا مثالی آورده شده است که نشان می دهد چگونه می توانید از روشهای ذخیره شده با Dapper استفاده کنید.

 public List<Author> Read()
    {
        using (IDbConnection db = new SqlConnection (ConfigurationManager.ConnectionStrings [“AdventureWorks”].ConnectionString))
        {
            string readSp ="GetAllAuthors";
            return db.Query<Author>(readSp, commandType: CommandType.StoredProcedure).ToList();
        }
    }

چارچوب Dapper همچنین از معاملات پشتیبانی می کند ، یعنی می توانید در صورت لزوم از عملیات تراکنش استفاده کنید.

برای این کار می توانید همانطور که معمولاً هنگام کار با معاملات در ADO.Net انجام می دهید ، از روش های StartTransaction () و EndTransaction () استفاده کنید.

در این صورت لازم است که اضهارات معامله خود را در تماس های BegTansaction و EndTransaction بنویسید.

Dapper micro ORM بسیار سبک و کاربردی است.

این SQL را برای شما ایجاد نمی کند ، اما نقشه نویسی از نتایج جستجو در POCO های شما (اشیاء ساده قدیمی CLR) را آسان می کند.

از همه بهتر ، سرعت اجرای سریعتر از آنچه که با Entity Framework انجام می دهید- تقریباً برابر ADO.Net ، است.

  • پسورد: www.mspsoft.com
زهره سلطانیان

نوشته‌های مرتبط

دیدگاه‌ها

*
*

این سایت از اکیسمت برای کاهش هرزنامه استفاده می کند. بیاموزید که چگونه اطلاعات دیدگاه های شما پردازش می‌شوند.