J'utilise le package Z.EntityFramework.Plus pour implémenter la fonctionnalité d'audit dans mon projet; Je suis la première approche de la base de données. J'exécute la requête qui a créé les deux tables d'audit comme décrit ici : en mettant à jour le fichier .edmx, j'ai obtenu ces nouveaux ensembles de bases de données.
public virtual DbSet<AuditEntries> AuditEntries { get; set; }
public virtual DbSet<AuditEntryProperties> AuditEntryProperties { get; set; }
maintenant, je veux récupérer l'historique d'audit, j'utilise la méthode d'extension Where
dans l'espace de noms Z.EntityFramework.Plus:
var auditlog = AuditExtensions.Where<TbAdditions>(oContext.AuditEntries, id).ToList();
mais le compilateur me crie qu'il ne peut pas DBset<AuditEntry>
le DBset<AuditEntry>
vers DBSet<AuditEntries>
comme dans la définition Where
il nécessite DbSet<AuditEntry>
et non DbSet<AuditEntries>
, si je change le nom du table?
Disclaimer : Je suis propriétaire du projet Entity Framework Plus
Vous utilisez actuellement la première approche de base de données avec la classe personnalisée AuditEntries
et AuditEntryProperties
. Vous n'utilisez donc pas Code First avec les classes AuditEntry
et AuditEntryProperty
fournies par la bibliothèque Z.EntityFramework.Plus.
La méthode d'extension a été créée pour la classe fournie par la bibliothèque, c'est pourquoi elle est incompatible avec votre classe.
Vous devrez implémenter de votre côté les mêmes méthodes d’extension que celles trouvées sur cette source: DbSet`AuditEntry.cs
Probablement plus de méthodes d'extension seront nécessaires.
La fonctionnalité d'audit est censée être entièrement recodée pendant l'été afin de permettre davantage d'extensibilité comme cette fonctionnalité.
EDIT: répondre à la sous-question
Comment l'implémenter?
Voici un exemple de mise en œuvre: https://gist.github.com/mshwf/af017b50ceb2994d953762ef2b20386d