در پروداکشن به خط خطا نباید اطمینان کرد
چند روز پیش توی یکی از پروژه ها که کار میکردم روش, یک خطای Object reference not set to an instance of an object صادر میشد و خطی که خطا صادر شده بود توی لاگها خط 61 بود. وقتی خط 61 رو چک کردم اصلا امکان خطا وجود نداشت, فقط یک کلاس نمونه سازی شده بود در خط 61. ....
ادامه مطلب
ایجاد یک 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 عمل میکند و به همین دلیل میتواند در تمامی سرویس ها با هر نو ....
ادامه مطلب