جستجو
منو بسته
3 بهمن 1403

استفاده از کلاس های *ForCaching

6 سال پیش
#1424
سلام
میشه لطفا بفرمایید چرا در ناپ کامرس از کلاس های *ForCaching ( مثل این ) استفاده میکنیم به جای اینکه از کلاس های خود EF ( مثل این ) برای کش استفاده کنیم؟
نقل قول
0
6 سال پیش
#1427
این یک راه حل جایگزین هست. چون EF (entity framework) از کش کردن 2 سطحی (بین درخواست های HTTP) پشتیبانی نمی کنه.
نقل قول
0
6 سال پیش
#1429
چرا از خود کلاس های انتیتی استفاده نشده؟
توی ناپ کامرس 3 مدل سرویس کش کردن هست. برای هر دارخواست، ممکش یا همون Memcached، توزیع شده. تا جایی که من اطلاع دارم، هرکدوم از این سرویسها دارن بصورت مستقل کار خودشونو انجام میدن و هرکدوم دسترسی های خاص خودشون رو دارن.
حالا اگه ما از کلاس های خود انتیتی به جای کلاس های *ForCaching استفاده کنیم، مشکلی پیش میاد؟
فکر نمیکنم اینطور باشه. لطفا یک نفر بهم توضیح بده چون میدونم که از کش کردن 2 سطحی استفاده میکنیم.
چرا از Entity Framework Classes استفاده نمیکنیم و به این کلاس ها نیاز داریم؟
نقل قول
0
6 سال پیش
#1432
شما نمیتونید کلاس های انتیتی رو کش کنید. تا زمانی که از EF استفاده میکنید، اونها به جای کلاس واقعی، تبدیل به پراکسی میشن.
این پراکسی ها شامل کانتکس های پایگاه داده و ... هستن. بطور مثال اگر یک موجودیت رو کش کنید و بعدا با یک درخواست دیگه قصد دسترسی به هر قسمتی از اون رو داشته باشید، با خطا روبرو خواهید شد.
دلیل دیگه ای که از entity caching استفاده نمیشه اینه که اگر شما از Redis Cache که از تسلسل باینری استفاده نمیکنه، استفاده کنید، وقتی نیاز به کلاس های پراکسی موجود در کش دارید، قادر به بازسازی اون ها نیست.

البته این ها همه در حد دانش منه. امیدورام به جواب سوالتون رسیده باشید.
اگر پاسخ سوالی برای شما مفید بود، به آن رای مثبت دهید تا به دیگران در پیدا کردن پاسخ مناسب کمک کنید
*******************************************************************************************
Be Who You Always Wanted To Be
نقل قول
0
6 سال پیش
#1435
ممنونم بابت پاسخ ارزشمندتون
پس با توجه به پاسخ شما اگه من از Dapper یا ado.net با کش برای هر درخواست (http) یا کش درون حافظه ای (البته نه redis) استفاده کنم، میتونم از کلاس های انتیتی به جای کلاس های *ForCache استفاده کنم؟ درسته؟
نقل قول
0
6 سال پیش
#1438
خواهش میکنم
تا جایی که من اطلاع دارم، بله میتونید و اصولا نباید مشکلی باشه.

موفق باشید
اگر پاسخ سوالی برای شما مفید بود، به آن رای مثبت دهید تا به دیگران در پیدا کردن پاسخ مناسب کمک کنید
*******************************************************************************************
Be Who You Always Wanted To Be
نقل قول
0
09127857628