Après avoir passé par Entity Framework, j'ai quelques questions sur la mise en œuvre de l'audit dans Entity Framework.Audit dans Entity Framework
Je souhaite stocker chaque valeur de colonne créée ou mise à jour dans une table d'audit différente.
En ce moment je fais appel SaveChanges (false) pour enregistrer les enregistrements dans la base de données (encore les changements dans le contexte est pas remis à zéro). Ensuite, obtenez le ajouté | enregistrements modifiés et boucle à travers le GetObjectStateEntries. Mais ne sais pas comment obtenir les valeurs des colonnes où leurs valeurs sont remplies par proc stocké. ie, createdate, modifieddate etc.
Voici l'exemple de code sur lequel je travaille.
// Get the changed entires(ie, records) IEnumerable<ObjectStateEntry> changes = context.ObjectStateManager.GetObjectStateEntries(EntityState.Modified); // Iterate each ObjectStateEntry(for each record in the update/modified collection) foreach (ObjectStateEntry entry in changes) { // Iterate the columns in each record and get thier old and new value respectively foreach (var columnName in entry.GetModifiedProperties()) { string oldValue = entry.OriginalValues[columnName].ToString(); string newValue = entry.CurrentValues[columnName].ToString(); // Do Some Auditing by sending entityname, columnname, oldvalue, newvalue } } changes = context.ObjectStateManager.GetObjectStateEntries(EntityState.Added); foreach (ObjectStateEntry entry in changes) { if (entry.IsRelationship) continue; var columnNames = (from p in entry.EntitySet.ElementType.Members select p.Name).ToList(); foreach (var columnName in columnNames) { string newValue = entry.CurrentValues[columnName].ToString(); // Do Some Auditing by sending entityname, columnname, value } }
Il est pas très clair ce que vous cherchez exactement ici- qu'est-ce que vous voulez faire que vous je ne sais pas comment faire –
Je veux faire de l'audit (en insérant le nom de table/nom de l'entité, nom de la colonne, valeur dans la table d'audit quand des changements sont faits pour une entité donnée) –