Qual è il modo migliore per aggiornare un'entità utilizzando un livello di servizio? Eseguendo una singola azione atomica, riesco a capire come BlogService.Publish (blogID) ma come modificare più valori che si associano all'entità del database? Considera il seguente codice:
public void Company(model As CompanyViewModel) {
var comp = _companyQueryService.GetByID(model.ID)
// ??? now what?
}
Potrei passare il viewmodel a qualche tipo di metodo UpdateCompany ma legare il viewmodel al servizio sembra super icky.
Potrei modificare direttamente i valori sull'entità, ma come posso salvare le modifiche senza accedere al contesto? (Il mio contesto è solo iniettato nei servizi tramite un meccanismo di scoping del contesto che mi consente di nidificare dbcontexts per transazioni atomiche e multi-azione.)
Potrei modificare i valori direttamente sull'entità e quindi chiamare direttamente SaveChanges sul servizio, ma preferirei che i servizi dettino quando il contesto viene salvato.
Ci sono altre opzioni?