Diciamo che interrogo il database e carico un elenco di elementi. Quindi apro uno degli elementi in un modulo di visualizzazione dettagli e invece di interrogare nuovamente l'elemento fuori dal database, creo un'istanza dell'elemento dall'origine dati nell'elenco.Aggiornare un record senza prima eseguire una query?
C'è un modo per aggiornare il record del database senza recuperare il record del singolo elemento?
Ecco un esempio di come sto facendo ora:
dataItem itemToUpdate = (from t in dataEntity.items
where t.id == id
select t).FirstOrDefault();
Poi dopo aver tirato la cronaca io aggiornare alcuni valori della voce e spingere il disco posteriore:
itemToUpdate.itemstatus = newStatus;
dataEntity.SaveChanges();
penserei ci sarebbe un modo migliore per farlo, qualche idea?
Non è un modo terribilmente cattivo o fare le cose. Hai accesso concorrente a quel tavolo? –
Penso che questo sia l'uso che un ORM come EF è esattamente lì per servire. Per consentire alle operazioni nel contesto dell'applicazione di essere eseguite sugli oggetti che si desidera creare/modificare/eliminare, senza preoccuparsi dell'implementazione del DB sottostante? –
Penso che per gli sviluppatori con un background in TSQL che cercano di accettare e abbracciare gli ORM, è un po 'inefficiente cercare un record solo per aggiornarlo e non utilizzare mai i dati recuperati. Questo concetto che uno sviluppatore non ha bisogno di preoccuparsi dell'implementazione del database sottostante è un crock. Più uno sviluppatore conosce l'intero sistema, migliore è la soluzione. Le opzioni non sono mai una brutta cosa. – barrypicker