هل هناك تعارض عند استخدام التخزين المؤقت البيانات كسول التحميل ؟

StackOverflow https://stackoverflow.com/questions/487669

  •  20-08-2019
  •  | 
  •  

سؤال

إذا كنت تخطط لاستخدام التخزين المؤقت البيانات هل لديك ما يدعو للقلق حول الصراعات عندما تستخدم أيضا المؤجلة التحميل ؟ ويبدو أنه مع linq أنا فقدان السيطرة على البيانات الخاصة بي.

هل كانت مفيدة؟

المحلول

كل LinqToSql و EntityFramework تقدم كل من الميزات (المؤجلة التحميل و التخزين المؤقت البيانات).

على سبيل المثال ، إذا كنت في البداية تحميل العميل ، أن العملاء سوف يكون مؤقتا و إذا كنت تسأل عن ذلك مرة أخرى سوف تحصل على نفس الدرجة.

إذا كنت لا تحميل أوامر العملاء أثناء الحمل الأولي ، ثم الأوامر الملكية من هذا المثال العملاء سوف يكون في تفريغ الدولة.عند القيام بتحميل تلك الأوامر ، ثم ترتيب الحالات سوف تكون متاحة من خلال هذا الموقع.

  • LinqToSql سيتم تحميل الممتلكات أول مرة يتم استخدامه.
  • EntityFramework تحميل العقار عندما طلب منه ذلك (باستخدام طريقة الحمل).

في كل من التكنولوجيات السياق هو الشيء الذي لا التخزين المؤقت...حتى إذا كنت تستخدم أكثر من سياق سبيل المثال - يمكن أن نلاحظ العملاء المختلفة الحالات التي تمثل حقا نفس العملاء.


معالجة الأسئلة الخاصة بك في التعليقات.سأتحدث LinqToSql, ولكن هذه الاشياء يجب أن تعمل في EntityFramework كذلك.

إذا كنت إيقاف المؤجلة التحميل أنا أعتبر التخزين المؤقت البيانات سوف لا تزال تعمل ؟

نعم ، من شأنها أن تعمل.إلا أنها ليست مستقلة تماما.

هو ذاكرة التخزين المؤقت البيانات التنظيف تعتمد على ما إذا كانت هناك تغييرات في datatable أو الوقت ؟

لا يوجد احمرار أو إعادة تعيين ذاكرة التخزين المؤقت.إذا كنت تريد الطازجة ذاكرة التخزين المؤقت فعله هو خلق جديد DataContext.لكل مثيل من DataContext لديها ذاكرة التخزين المؤقت.

  • هناك طريقة لسحب تحديث ذاكرة التخزين المؤقت مع التغييرات في قاعدة البيانات الملقب - تحديث.
  • لا توجد وسيلة لدفع تغييرات من قاعدة البيانات إلى ذاكرة التخزين المؤقت.
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top