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