Benutzer mit den meisten Antworten
EF Core (3.0) globales save/update Event

Frage
-
Hallo Community
Gibt es im EF Core, bei mir die Version 3, die möglichkeit bei jedem Save, oder auch Update, ein Event auszulösen?
Ich will dazu nicht jede Entität anpassen müssen. Ich sollte bei jeder änderung eines Datensatzes den User und die Zeit im Record vermerken. Dazu müsste ich beim Event die Entität übergeben bekommen damit ich auf ein bestimmtes Interface prüfen kann.Ansätze dazu?
Gruss
Roland
mfg GENiALi
Antworten
-
Hallo Roland,
es gibt in EF Tracker Klasse in der auch 2 Events sind. Schau dir aber auch diese Unterhaltung auf Github an
Gruß Thomas
13 Millionen Schweine landen jährlich im Müll
Dev Apps von mir: UWP Segoe MDL2 Assets, UI Strings- Als Antwort vorgeschlagen Ivan DragovMicrosoft contingent staff, Moderator Freitag, 18. Oktober 2019 05:41
- Als Antwort markiert GENiALi Dienstag, 22. Oktober 2019 12:20
Alle Antworten
-
Hallo Roland,
es gibt in EF Tracker Klasse in der auch 2 Events sind. Schau dir aber auch diese Unterhaltung auf Github an
Gruß Thomas
13 Millionen Schweine landen jährlich im Müll
Dev Apps von mir: UWP Segoe MDL2 Assets, UI Strings- Als Antwort vorgeschlagen Ivan DragovMicrosoft contingent staff, Moderator Freitag, 18. Oktober 2019 05:41
- Als Antwort markiert GENiALi Dienstag, 22. Oktober 2019 12:20
-
Hi
Habs jetzt mit einer Middleware und dem Tracker gemacht. Funktioniert einwandfrei.
public async Task InvokeAsync(HttpContext httpContext, DbContext dbContext) { dbContext.ChangeTracker.StateChanged += (s, e) => { if (e.Entry.Entity is ISimpleDomainObject && e.Entry.Entity is IIdentifiable) { string userName = httpContext.User.Claims.FirstOrDefault(c => c.Type == "username")?.Value; int id = ((IIdentifiable) e.Entry.Entity).Id; Tracking tracking = new Tracking(id, userName, DateTime.Now, e.Entry.Entity.GetType().Name, JsonConvert.SerializeObject(e.Entry.Entity)); dbContext.Tracking.Add(tracking); dbContext.SaveChangesAsync(); } }; await _next(httpContext); }
Gruss
Roli
mfg GENiALi