ایجاد یک Interceptor برای پیدا کردن کوئری های کند در EntityFramework Core


در این مطلب میخواهیم یک Interceptor ایجاد کنیم برای پیدا کردن کویری هایی که بیشتر از 2 ثانیه طول میکشند. برای پیاده سازی باید یک کلاس ایجاد کنیم که از کلاس DbCommandInterceptor ارث بری کند. کلاس DbCommandInterceptor در EF Core 3 و یا ورژن های بالاتر قرار دارد ....
ادامه مطلب

تفاوت AsNoTracking و AsNoTrackingWithIdentityResolution


در Entity Framework هر زمان یک یا چند رکورد را از دیتاها را از دیتابیس میخوانیم, به طور پیشفرض توسط ChangeTracker ردیابی میشوند. و همین امر باعث میشود مقداری کاهش پرفرمنس داشته باشیم. اگر نخواهیم که Entity Framework این عملیات ردیابی موجودیت ها ....
ادامه مطلب

تفاوت throw و throw ex در #C


throw مجددا خطا را صادر میکند با همان StackTrace قبلی. دقیقا خطای صادر شده را مجددا صادر میکند. اما اگر از throw ex استفاده کنید بازم هم همان خطای قبلی را صادر میکند اما با یک تفاوت, StackTrace را ریست میکند!. برای مثال در کد زیر در متد DoSomethig یک عملیات تقسیم بر صفر انجام میدهیم که باعث بروز ....
ادامه مطلب

تفاوت IOptions, IOptionsMonitor و IOptionsSnapshot


در مطلب قبل به نحوه خواندن دیتاها از appsettings.json توسط IOptions پرداختیم. در این مطلب به بررسی تفاوت بین IOptions, IOptionsMonitor و IOptionsSnapshot میپردازیم. اینترفیس IOptions به صورت Singleton عمل میکند و به همین دلیل میتواند در تمامی سرویس ها با هر نو ....
ادامه مطلب

خواندن دیتاها از appsettings.json در asp.net core


در asp.net core پارامترهایی مانند کانکشن استرینگ های دیتابیس, کانفیگ های مربوط به سرویس ها, دیتاهایی که به ندرت تغییر میکنند را در فایل appsettings.json قرار میدهند و هر زمان که نیاز باشد آنها را از appsetting.json دریافت کنند باید از IConfiguration استفاده ....
ادامه مطلب