Entity Framework hat synchrone und asynchrone Versionen der gleichen IO-gebundenen Methoden wie SaveChanges
und SaveChangesAsync
. Wie kann ich neue Methoden erstellen, die die gleiche Aufgabe minimal erfüllen, ohne Code zu "duplizieren"?Wie kann ich doppelte Async-/Sync-Methoden problemlos unterstützen?
public bool SaveChanges()
{
//Common code calling synchronous methods
context.Find(...);
//Synchronous Save
return context.SaveChanges();
}
public async Task<bool> SaveChangesAsync()
{
//Common code asynchronous methods
await context.FindAsync(...);
//Asynchronous Save
return await context.SaveChangesAsync();
}
Kann man davon ausgehen, dass EF dies durch Duplizieren des Codes erreicht? – Shoe
@Schuh es ist * völlig möglich *, dass EF dies durch Duplizieren des Codes erreicht; Ich würde es nicht unbedingt annehmen. Da es sich jedoch höchstwahrscheinlich um eine Mischung aus Code-Gen und Meta-Programmierung handelt, ist es wahrscheinlich in Ordnung (d. h. "richtig gemacht"). –
Wenn ich cpu-gebundene Methoden anstelle von io-gebunden hätte, wäre der richtige Weg, dies zu erreichen, etwas wie 'Task.Run()' zu verwenden? – Shoe