سلام
تفاوت Dapper با Ef در چیست
و استفاده از کدامیک از موارد بالا بهتر است و به چه دلیلی در یک برنامه mvc
سلام
تفاوت Dapper با Ef در چیست
و استفاده از کدامیک از موارد بالا بهتر است و به چه دلیلی در یک برنامه mvc
هم Dapper و هم EF یک ORM هستند.
Object-relational mapper ابزای است که ساختار دیتابیس رو تبدیل محیط شی گرا در #C میکنه و دیگه لازم نیست دستورات SQL بلد باشید تا با دیتابیس کار کنید.
بجای نوشتن کوئری های SQL به صورت رشته های غیر قابل تست از اشیای سی شارپ استفاده می کنید.
فرق اصلی این دوتا اینه که Dapper یک Mini-ORM هست و نسخه ی کوچکتر شده و سبکتر شده ی EF به حساب میاد. خیلی از قابلیت های EF رو Dapper نداره (مثل Code First) ولی در عوض سریعتره.
البته اختلاف سرعت مربوط به EF 6.0 میشه. در EF Core با توجه به ماژولار شدن و باز نویسی اختلاف سرعت با Dapper بسیار ناچیزه.
به طور کلی Dapper توسط سایت StackOverFlow پیاده شده. این سایت روزانه میلیونها درخواست داره و صدها هزار کاربر آنلاین هر لحظه در اون اطلاعات وارد میکنن. این سایت دید که EF به عنوان یک گردنه سرعت گردش اطلاعات رو کند میکنه. پس اومد و خودش یک ابزار کوچک به نام Dapper ایجاد کرد تا این مشکل رو حل کنه. اما بعد این ابزار رو توسعه داد تا بقیه هم استفاده کنن.
وقتی باید از Dapper استفاده کنید که ترافیک سایت شما در حد بسیار بالاست و EF هم باعث کند شدن اون شده. برای بسیاری از سایتها مشکل کند شدن مربوط به موارد دیگری هست و با انجام تکنیک های متنوع میشه اون رو بهبود بخشید. EF معمولا آخرین جایی که باید نگاه کنید.