كيفية استخدام NLOG / LOG4NET لأتمتة تتبع تغيير قاعدة البيانات؟

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

سؤال

أنا على علم بالعديد من طرق التدقيق الجدول. يتم تشغيل بعض بعضها وتتطلب مشغلات على كل جدول يتم تدقيقه. يحتوي البعض على قيود بناء على نوع بيانات العمود. كيف يمكنني استخدام إطار تسجيل مثل NLOG أو LOG4NET. أريد أن سجل (في جدول) للإجابة على السؤال "من قام بتحديث هذا العمود من هذا الجدول من Val0 إلى Val1 في هذا الوقت؟"

أنا لم أقرر على أو mapper حتى الآن. الميل نحو lhibernate أو EF.

شكرا مقدما !

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

المحلول

إذا كنت تستخدم نمط مثل داو (يمكنني استخدامه بنجاح في جافا مع السبات) يمكنك إضافة إدخال لكل تغيير في قاعدة البيانات. كما ترى spring.net. يمكنك استخدام أوم لإضافة اعتراضي إلى أساليب DAOS التي تصل إلى قاعدة البيانات.

على أي حال، قد ترغب في إضافة Aflender خاص لحزمة DAOS لأنه سيكون مطولا للغاية.

نصائح أخرى

الجواب المنتصرين هو من الدرجة الأولى، لكنني أردت أن أضيف أن هذا قد يكون صعبا اعتمادا على كيفية عمل تعيينات العمود> كائناتك.

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

كما قد يكون هذا خطأ ولكن إذا كنت تعمل مع كيانات منفصلة من خلال حزمة أورم لست متأكدا مما إذا كانت تغيير معلومات التتبع ستكون متاحة. أتذكر غامضة مشكلة قرأت عن المكان الذي تم فيه تحديث أحد الأورام التي أدرجتها كل عمود، بدا أن المستخدم غير المستخدم جميع الأعمدة الموجودة في الجدول عند تحديث عمود واحد حقا.

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