بسته

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

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

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

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