سؤال

لدي لطيفة نموذج المجال بنيت.مستودعات التعامل مع الوصول إلى البيانات وليس ما.ومتطلبات جديدة قد برزت تشير إلى أن الأسباب تحتاج إلى تسجيل مع حذف.حتى الآن تم حذف بسيطة إلى حد ما => الكيان.الأطفال.إزالة(الطفل).لا التغيير الداخلي تتبع يحدث كما اسندت أداة تم التعامل مع إدارة الدولة.ومع ذلك أنا لست متأكدا exactyl كيفية التعامل مع هذا.

1) أنا يمكن أن تبقي حذف الأطفال جمع في الأصل كيان وسحب تغيير تتبع من nHibernate والتعامل معها نفسي.

2) ??????

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

المحلول

وطيب، وهذا يبدو مجنون وأنا ذاهب لتأخذ فرصة أخرى في هذا - على الرغم من أنني يمكن أن يضرب لسوء استخدام nHibernate. قبل حذف، لماذا لا يتم اختيار الأطفال التي سوف يتم حذفها (لديك بالفعل هوياتهم صحيح؟) والقيام التحول إلى كيان مهما كان ذهابك إلى استخدام لتسجيل الحذف الخاص بك إلى جدول. إضافة السبب إلى كيانات وحفظها - ثم المضي قدما في حذف الخاصة بك. أفضل جزء، يمكنك استخدام كيان عام أي "auditInfo" لنتيجة لهذا التحول، ويمكنك القيام بذلك داخل معاملة حتى تتمكن من التراجع عن كل شيء إذا فشل شيء! حسنا، ربما مجنون ولكن المبدع أليس كذلك؟

نصائح أخرى

يمكنك تنفيذ IInterceptor واجهة و تجاوز onDelete وظائف لسحب المعلومات التي تحتاجها من الكيان وإرسالها إلى المسجل قبل حذف (باستخدام NHibernate طبعا) ؟

على سبيل المثال

إذا حذف نادرة نسبيا لهذا النوع من كيان معين، وأود أن أضيف العلم إلى الكيان إلى وضع علامة على أنها منطقيا "حذف" بدلا من الواقع حذف الصف. ان التطبيق ثم يكون للتعامل مع إخفاء هذه الكيانات في ظل الظروف العادية.

إذا هذا من شأنه أن يتسبب في عدد غير مقبول من صفوف "لا معنى لها" - أود أن أقترح شيئا من هذا القبيل إلى إجابة واتسون. اعتمادا على المتطلبات الدقيقة، هل يمكن ربما تفلت من تسجيل البيانات المحذوفة و "السبب" حقل إضافي في مكان ما مباشرة من التطبيق. باستخدام الصواريخ الاعتراضية أكثر شفافية وأكثر إرضاء من نقطة تدقيق نظر، ولكن سجل الحذف منفصل (الجدول وقواعد البيانات والملفات) هو على الارجح أكثر بساطة.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top