Dove collocare la convalida personalizzata durante l'utilizzo di Entity Framework

3

Sto utilizzando MVC3 e Enitty Framework 4 con il primo approccio del Database. Ha creato il modello di contesto con la propria validazione per i campi basati sul database. La mia domanda è dove dovrei mettere l'altra convalida basata sulla logica commerciale. Dovrei metterlo nel file Context.tt, dovrebbe andare nel controller o dovrebbe andare in un modello separato?

    
posta DFord 12.12.2012 - 15:19
fonte

1 risposta

4

Al minimo, la convalida della logica aziendale dovrebbe andare all'interno del Controller per il framework che stai utilizzando. Se la logica di convalida è portatile, anche la creazione di un modulo di convalida separato, chiamato dal Controller, andrebbe bene.

In generale, posiziona la logica di validazione il più vicino possibile al livello che influenza. Allo stesso modo, convalidare gli elementi al livello più appropriato (appropriato definito da ciò che è interessato). Il concetto è correlato all'incapsulamento e ai principi SOLID . L'obiettivo è quello di consentire la modifica dei singoli componenti in base alle esigenze, oltre a rendere più semplice la logica di convalida.

Per essere un po 'più chiari, se esiste una logica di convalida per proteggere il database da modifiche errate, tale logica deve essere collocata all'interno (o richiamata) dal Modello. Allo stesso modo, la validazione dell'input appartiene alla View.

Alcune logiche di convalida possono svolgere funzioni doppie (o triple) o sarebbero comuni tra più moduli nello stesso livello. È opportuno creare un modulo separato per quella logica. A rischio / spesa di controlli duplicati, vorrei comunque che ogni livello venisse convalidato per gli aspetti di cui è responsabile.

    
risposta data 12.12.2012 - 16:25
fonte

Leggi altre domande sui tag