جستجو
محصولات
    منو بسته
    1 دی 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