Come quelli di voi che lavorano con Entity Framework Core potrebbero sapere, la versione corrente non ha un'implementazione per CurrentValues.SetValues () per le Entità. Sembra che il supporto per questo verrà nella prossima versione v1.1 come afferma questo problema . Fino ad allora, qualcuno ha una soluzione che funzioni per l'aggiornamento delle voci delle entità?
Per il contesto, la funzione SetValues nel passato entity framework prende un'entità e aggiorna le sue proprietà ai valori di un'entità passata come parametro, ovvero:
var updatedEntity = currentEntity.CurrentValues.SetValues(newValues);
_dbContext.SaveChanges();
Ho trovato alcune implementazioni usando PropertyInfo per fare una funzione di aggiornamento generica ma non ho trovato nulla che sembra essere una bella soluzione pulita. Potrebbe solo prendere quello che posso ottenere però :)
ps Mi rendo conto che questa funzione ha funzionato solo per entità semplici che non hanno grafici di oggetti complessi che richiederebbero l'aggiornamento di altre entità correlate. Il mio caso d'uso è semplice. È solo fastidioso dover mappare manualmente le proprietà in questo momento.
EDIT: Ora che EF Core v1.1.0 è stato rilasciato, CurrentValues.SetValues () funzionerà.
Vedi il seguente frammento di codice
var currentEntity = dbSetEntity.Find(id);
_dbContext.Entry(currentEntity).CurrentValues.SetValues(newValues);