Quando sviluppiamo i nostri servizi molto spesso mettiamo a disposizione un metodo generico Write e non i metodi Update e Create. All'interno di questo metodo dobbiamo capire se invocare il metodo Attach o AddObject per persistere l'oggetto passato in input.
Un modo molto semplice per fare questo è osservare il valore della proprietà chiave della entity. Supponendo che la proprietà chiave sia un intero, se il valore è 0 effettuiamo un inserimento metodo (AddObject), se il valore è superiore a 0, invochiamo un aggiornamento (metodo Attach). Volendo, possiamo anche definire che se il valore è -1, l'ggetto va eliminato (metodo DeleteObject).
Con questa semplice tecnica possiamo evitare una proliferazione dei metodi nell'interfaccia del nostro servizio che è una cosa buona.
public void WriteCustomer(Customer cust) { ... if (cust.Id == 0) ctx.AddObject(cust) else { ctx.Attach(cust); ctx.ObjectStateManager.ChangeObjectState(cust, EntityState.Modified); } ctx.SaveChanges(); ... }
Commenti
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.
Approfondimenti
Assegnare un valore di default a un parametro di una lambda in C#
Eseguire operazioni con timeout in React
Utilizzare il trigger SQL con le Azure Function
Elencare le container images installate in un cluster di Kubernetes
Utilizzare Tailwind CSS all'interno di React: installazione
Eseguire un metodo asincrono dopo il set di una proprietà in Blazor 8
Utilizzare Tailwind CSS all'interno di React: primi componenti
Recuperare un elemento inserito nella cache del browser tramite API JavaScript
Utilizzare database e servizi con gli add-on di Container App
Utilizzare la session affinity con Azure Container Apps
Definire stili a livello di libreria in Angular
Trasformare qualsiasi backend in un servizio GraphQL con Azure API Management