نظرات مطالب
OutputCache در ASP.NET MVC
من از CacheManager در EFSecondLevelCache.Core استفاده می‌کنم. مزیت آن، تعویض پذیر بودن قسمت مدیریت کش کردن اطلاعات است، بدون تغییری در کدهای برنامه؛ چون برنامه از اینترفیس‌های آن استفاده می‌کند و استفاده کننده می‌تواند تامین کننده‌های کش را در ابتدای اجرای برنامه، به دلخواه خودش تغییر دهد. برای مثال از کش درون حافظه‌ای استفاده کند یا به سادگی این تنظیمات اولیه را تغییر دهد و از Redis استفاده کند.
بنابراین CacheManager ارتباطی به بحث جاری ندارد؛ مگر اینکه کتابخانه‌های کش نوشته شده، ساختار داخلی خودشان را بر اساس اینترفیس‌های CacheManager بازنویسی کنند.
نظرات مطالب
بازنویسی سطح دوم کش برای Entity framework 6
Lazy loading با کش سازگاری ندارد؛ چون اتصال اشیاء موجود در کش از context قطع شده‌اند. در بار اول فراخوانی یک کوئری که قرار است کش شود، از context و دیتابیس استفاده می‌شود. اما در بارهای بعد دیگر به context و دیتابیس مراجعه نخواهد شد. تمام اطلاعات از کش سیستم بارگذاری می‌شوند و حتی یک کوئری اضافی نیز به بانک اطلاعاتی ارسال نخواهد شد. به همین جهت در این موارد باید از متد Include برای eager loading اشیایی که نیاز دارید استفاده کنید.
نظرات مطالب
OutputCache در ASP.NET MVC
به این صورت؛ البته این روش کش تمام child actionها را با هم پاک می‌کند:
OutputCacheAttribute.ChildActionCache = new MemoryCache("NewRandomStringNameToClearTheCache");
نظرات مطالب
Implementing second level caching in EF code first
با سلام وتشکر
شما با روابط many to many مشکلی ندارید با این روش کش کردن؟