Ho un progetto C # MVC standard che ha un livello dominio usando EF e pattern di repository. Dì che ho un modello come:
public class MainModel
{
public int MainModelID {get; set;}
//Many other properties
public List<Organization> CompetingOrganizations {get;set;}
}
Al momento dell'invio, devo compilare l'elenco di CompetingOrganizations
in base al valore corrente di altre proprietà in MainModel
e le proprietà in tutte le organizzazioni nel mio database.
In questo momento il mio controller chiama solo MainModelRepository.Update(...)
dopo che il modello di vista è stato convalidato e mappato sul modello di dominio senza compilare questo elenco. Potrei popolare le organizzazioni in competizione per:
- effettuare una chiamata al (ad esempio)
List<Organization> CompetingOrgList = OrganizationRepository.GetCompetingOrgs(model)
dal controller, aggiungerli aMainModel
e persistere allo stesso modo, o da; - creazione di una chiamata
MainModelRepository.UpdateWithCompetingOrgs(model)
che accede direttamente aOrganizations
DbSet
dal contesto inMainModelRepository
per determinare quali organizzazioni devono essere aggiunte per impostazione predefinita.
Entrambe queste opzioni sono sbagliate, ma senza un livello di servizio non sono sicuro di come dovrei gestirlo altrimenti e quale metodo è più pulito?