إنتقل إلى المحتوى الرئيسي

0002 — حالة المثيل هي TPH؛ الانتقال يستبدل الكيان

السياق​

يتحرك مثيل التشغيل/الاختبار عبر الحالات (قيد الانتظار → مجدول → بدء التشغيل → تشغيل → نهائي). نحن نمذجة الحالة بـ Table-Per-Hierarchy (TPH) في EF Core: كل حالة هي نوع فرعي (StartingRunInstance، RunningRunInstance، إلخ). لا يمكن تغيير عمود التمييز في EF على صف موجود.

القرار​

الانتقال من حالة إلى أخرى يستبدل الكيان بمثيل نوع فرعي جديد بدلاً من تحوير حقل الحالة. نظراً لأن الصف يتم استبداله، معرف المثيل يتغير عبر بدء التشغيل → تشغيل → نهائي. معرف الحاوية مستقر ويتم تنقله عبر الانتقالات؛ وكيل HTTP للعقدة يكون مفتاحه بواسطة معرف الحاوية لحالة/تقرير/إيقاف/السجلات.

النتائج​

  • كل حالة هي نوع مميز مع فقط الحقول والطرق الصحيحة في تلك الحالة - الانتقالات غير القانونية والوصول إلى حقل غير منطقي هي أخطاء وقت التجميع، وليس الفحوصات في وقت التشغيل.
  • يجب على المتصلين عدم تخزين مؤقتاً معرف المثيل عبر الانتقال؛ استخدم معرف الحاوية كمقبض مستقر لأي شيء يعبر الحالات.
  • منطق الانتقال يعيش في InstanceTransitions؛ تغيير المعرف هو مقصود، وليس خطأ.