Uso il pacchetto Z.EntityFramework.Plus per implementare la funzione di controllo nel mio progetto; Sto seguendo il primo approccio del DB, eseguo la query che ha creato le due tabelle di controllo come descritto qui : aggiornando il file .edmx ho ricevuto quei nuovi set di dati
public virtual DbSet<AuditEntries> AuditEntries { get; set; }
public virtual DbSet<AuditEntryProperties> AuditEntryProperties { get; set; }
ora voglio recuperare la cronologia di controllo, io uso il metodo di estensione Where
nello spazio dei nomi Z.EntityFramework.Plus:
var auditlog = AuditExtensions.Where<TbAdditions>(oContext.AuditEntries, id).ToList();
ma il compilatore mi sta urlando, che non può DBset<AuditEntry>
a DBSet<AuditEntries>
come nella definizione Where
richiede DbSet<AuditEntry>
, non DbSet<AuditEntries>
, dovrei cambiare il nome del tavolo?
Disclaimer : sono il proprietario del progetto Entity Framework Plus
Attualmente stai utilizzando il primo approccio DB con classe personalizzata AuditEntries
e AuditEntryProperties
. Quindi non stai usando Code First con la classe AuditEntry
e AuditEntryProperty
fornita dalla libreria Z.EntityFramework.Plus.
Il metodo di estensione è stato creato per la classe fornita dalla libreria, ecco perché è incompatibile con la tua classe.
Dovrai implementare al tuo fianco gli stessi metodi di estensione trovati su questa fonte: DbSet`AuditEntry.cs
Probabilmente saranno richiesti più metodi di estensione.
La funzione di controllo dovrebbe essere completamente ricodificata durante l'estate per consentire una maggiore estensibilità come questa funzione.
EDIT: Rispondi alla sotto-domanda
Come implementarlo?
Ecco un esempio su come implementarlo: https://gist.github.com/mshwf/af017b50ceb2994d953762ef2b20386d