هل هناك تعارض عند استخدام التخزين المؤقت البيانات كسول التحميل ؟
-
20-08-2019 - |
سؤال
إذا كنت تخطط لاستخدام التخزين المؤقت البيانات هل لديك ما يدعو للقلق حول الصراعات عندما تستخدم أيضا المؤجلة التحميل ؟ ويبدو أنه مع linq أنا فقدان السيطرة على البيانات الخاصة بي.
المحلول
كل LinqToSql و EntityFramework تقدم كل من الميزات (المؤجلة التحميل و التخزين المؤقت البيانات).
على سبيل المثال ، إذا كنت في البداية تحميل العميل ، أن العملاء سوف يكون مؤقتا و إذا كنت تسأل عن ذلك مرة أخرى سوف تحصل على نفس الدرجة.
إذا كنت لا تحميل أوامر العملاء أثناء الحمل الأولي ، ثم الأوامر الملكية من هذا المثال العملاء سوف يكون في تفريغ الدولة.عند القيام بتحميل تلك الأوامر ، ثم ترتيب الحالات سوف تكون متاحة من خلال هذا الموقع.
- LinqToSql سيتم تحميل الممتلكات أول مرة يتم استخدامه.
- EntityFramework تحميل العقار عندما طلب منه ذلك (باستخدام طريقة الحمل).
في كل من التكنولوجيات السياق هو الشيء الذي لا التخزين المؤقت...حتى إذا كنت تستخدم أكثر من سياق سبيل المثال - يمكن أن نلاحظ العملاء المختلفة الحالات التي تمثل حقا نفس العملاء.
معالجة الأسئلة الخاصة بك في التعليقات.سأتحدث LinqToSql, ولكن هذه الاشياء يجب أن تعمل في EntityFramework كذلك.
- هنا شرح المؤجلة مقابل فوري التحميل.
- هنا التفسير من وجوه الهوية التخزين المؤقت.
إذا كنت إيقاف المؤجلة التحميل أنا أعتبر التخزين المؤقت البيانات سوف لا تزال تعمل ؟
نعم ، من شأنها أن تعمل.إلا أنها ليست مستقلة تماما.
- هنا كيفية إيقاف تشغيل التخزين المؤقت (انها افتراضيا).
- هنا كيفية تحويل المؤجلة التحميل (انها افتراضيا). قراءة هذا واحد, لأنه يفسر كيف أن هذه الميزات التفاعل.
هو ذاكرة التخزين المؤقت البيانات التنظيف تعتمد على ما إذا كانت هناك تغييرات في datatable أو الوقت ؟
لا يوجد احمرار أو إعادة تعيين ذاكرة التخزين المؤقت.إذا كنت تريد الطازجة ذاكرة التخزين المؤقت فعله هو خلق جديد DataContext.لكل مثيل من DataContext لديها ذاكرة التخزين المؤقت.
- هناك طريقة لسحب تحديث ذاكرة التخزين المؤقت مع التغييرات في قاعدة البيانات الملقب - تحديث.
- لا توجد وسيلة لدفع تغييرات من قاعدة البيانات إلى ذاكرة التخزين المؤقت.