2010-09-09 6 views
3

J'ai une table d'audit dans la base de données SQL Server 2008 qui garde trace de toutes les modifications apportées dans les tables. Il fait un excellent travail, sauf qu'il ne peut pas attraper le nom d'utilisateur de l'utilisateur actuellement connecté, car ma chaîne de connexion utilise un nom d'utilisateur pour toutes les connexions.Déclenchez la procédure stockée après SaveChanges dans Entity Framework 1.0

Cette application est écrite en ASP.NET MVC, c'est pourquoi j'ai un nom d'utilisateur stocké dans la chaîne de connexion. Question: comment puis-je passer un nom d'utilisateur à cette table APRÈS avoir appelé la fonction SaveChanges?

Répondre

1

N'utilisez pas directement SaveChanges. Créez votre propre méthode (peut être une méthode d'extension) qui appellera SaveChanges et exécutera votre code supplémentaire. Utilisez cette méthode chaque fois que vous souhaitez enregistrer les modifications.

La mauvaise chose est que vous pouvez oublier d'appeler votre méthode et utiliser SaveChanges directement. Pour y faire face, vous devez refactoriser votre code et masquer ObjectContext à un wrapper - Repository. Exposez la méthode Save sur le référentiel et implémentez votre logique de sauvegarde.

+0

Ladislav, merci pour suggestion, je vais l'essayer un peu de temps la semaine prochaine – Alex

Questions connexes