Logica / Modifiche aziendali a più entità, modello di archivio C # MVC

2

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 a MainModel e persistere allo stesso modo, o da;
  • creazione di una chiamata MainModelRepository.UpdateWithCompetingOrgs(model) che accede direttamente a Organizations DbSet dal contesto in MainModelRepository 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?

    
posta Matthew 21.07.2016 - 05:22
fonte

0 risposte

Leggi altre domande sui tag