2010-07-02 2 views
1

Je veux mettre en œuvre la gestion des événements dans mon application et je veux savoir quelle pourrait être la meilleure pratique pour atteindre cet objectif. Dans mon cas, la gestion des événements consiste à gérer un journal de toutes les opérations d'insertion/mise à jour/suppression dans mon application.Je veux suivre chaque opération insert/update/delete sql dans mon CMS ASP.Net MVC

+1

Modifié votre titre. "Gestion d'événements" est plutôt vague. – jfar

+1

Quel niveau de détail voulez-vous? Chaque détail de chaque changement, ou juste un générique "UserX edited ItemY at 2010-07-02T08: 32: 44"? – GalacticCowboy

Répondre

3

Il semble que vous vous référez à un événement de base de données, dans ce cas, j'utiliserais des déclencheurs sur la base de données et je ne dérangerais avec aucune implémentation ASP.Net.

+0

Je suis d'accord qu'il est normalement plus sûr de les avoir au niveau de la base de données afin que les modifications en dehors de l'application soient également interceptées et enregistrées. En supposant également que vous voulez enregistrer les événements dans la base de données. –

0

Je suis d'accord avec la réponse que cela peut être fait dans la couche DB en utilisant des déclencheurs. Si vous ne voulez pas le mettre dans la couche db, vous pouvez créer un filtre d'action pour toutes vos actions (ajouter/mettre à jour/supprimer) - qui écrit dans le journal.

1

Quelle couche d'accès aux données utilisez-vous? Si vous utilisez LINQ to SQL ou Entity Framework, vous pouvez vous connecter aux événements dans leurs contextes pour suivre ces opérations. Ou, si vous avez un niveau de service à travers lequel toutes ces opérations circulent, vous pouvez y organiser des événements.

Plus précisément, puisque vous utilisez LINQ to SQL, vous pouvez mettre en œuvre les méthodes partielles InsertEntity, UpdateEntity et DeleteEntity (où entité est le nom de chacune de vos entités) sur votre DataContext fortement typé. Ces crochets devraient être l'endroit exact pour effectuer votre journalisation ou tout autre traitement d'événement.

+0

oui im ​​en utilisant LINQ to SQL –

Questions connexes