Entity Framework 6: audit/suivi des modifications

J'ai mon projet de base en C#.

Je travaille sur une base de données, où certains tableaux ont les colonnes "user_mod" et "date_mod" pour signer quand et par qui fait quelques mods et la même chose avec "data_new" et "user_new".

Ma question: est-il un moyen de centraliser ce et de rendre ces données insérées automatiquement, lorsque je créer l'instance de dbContext?

Si non, je vais utiliser une piste d'audit de l'outil. J'ai vu certains de ceux-ci, mais il y a un problème: toutes ces, exige un peu de code dans mon modèle. Mais je ne veux pas écrire dans mon modèle, parce que si je dois le changer, j'ai perdu les mods. Est-il possible d'utiliser une piste de vérification pour EF6 sans écriture dans le fichier de modèle(s)? Comment?

EDIT:

Ma tentative de remplacer la saveChanges.

public partial class PieEntities : DbContext
{
    public override int SaveChanges(System.Data.Objects.SaveOptions options)
    {
        var timestamp = DateTime.Now;

        EntityState es = EntityState.Added;
        ObjectStateManager o = new ObjectStateManager();

        foreach (ObjectStateEntry entry in o.GetObjectStateEntries(EntityState.Added ))  {
            if (entry.Entity.GetType() == typeof(TabImpianti)) {
                TabImpianti impianto = entry.Entity as TabImpianti;
                impianto.DATA_INS = timestamp;
                impianto.DATA_MOD = timestamp;
                string u = mdlImpostazioni.p.UserName;
                impianto.USER_INS = u;
                impianto.USER_MOD = u;
            }
        }
        return base.SaveChanges(options);
    }
}

Mise à JOUR: j'ai résumé les la solution ici.

  • double possible de Entity Framework DbContext SaveChanges() valeur d'origine Incorrect. Il y a beaucoup plus d'efforts dans ce domaine. Recherchez Entity Framework + d'audit.
  • pourquoi? Je ne le pense pas. En outre, cette question est sur le EF4, deux versions plus anciennes de la mine.
  • Eh bien, j'ai choisi un au hasard à partir d'une longue liste de succès quand je fais une recherche StackOverflow sur ce sujet. Il s'élève habituellement à la redéfinition de SaveChanges, qui est la même dans EF4. Dans EF6 vous pouvez vous aventurer quelque chose dans le domaine de la commande de l'arbre intercepteurs, mais je ne sais pas où cela va vous amener.
  • votre Vousmanager doit venir du contexte: l'assigner à partir de ce (this as IObjectContextAdapter).ObjectStateManager
  • Quant à la base de l'appel, je ne vois pas pourquoi cela poserait un problème. Je pense que vous n'avez pas besoin de dire au compilateur que vous héritez d'un DbContext encore une fois cependant, retirez le : DbContext
  • maintenant: foreach (ObjectStateEntry entrée (ce que IObjectContextAdapter).Vousmanager.GetObjectStateEntries(EntityState.Ajouté )) --> il dit qu'Vousmanager doens existe pas.
  • et, avec et sans ":dbContext", il se complique pas trouver saveChanges pour remplacer...