در حال بارگزاری ...

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

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

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

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