Domanda

Nel mio database, ci sono forse una dozzina di tavoli che rappresentano i tipi di ricerca (tutte dotate di ID e dei nomi delle colonne - No, devono rimanere come tabelle separate, non verrà normalizzata in una tabella). Sto costruendo un'applicazione di amministrazione, dove voglio un amministratore sia in grado di aggiungere / modificare / cancellare / elencare tutte queste ricerche. So che posso riutilizzare il modello, ma c'è un modo più efficiente per me di scrivere questo in un'applicazione ASP MVC 2, altro che scrivere 3 viste, 1 controller per ogni tipo di ricerca con conseguente 48 visite e 12 controllori?

È stato utile?

Soluzione

Non suggerirei di rimuovere l'accoppiamento tra i vostri modelli, i controllori, e viste. L'idea alla base di questo modello è che si arriva a separare la logica di business dalla presentazione dal flusso di lavoro. Se si inizia a mescolare più modelli nelle stesse viste / controller, esso diventa disordinato.

Forse prova a fare quello che stai cercando utilizzando una pagina master e avere i vostri modelli ereditano da una classe base comune o qualcosa del genere, invece? In questo modo è possibile riutilizzare codice senza schiacciandolo nelle stesse file.

Altri suggerimenti

Che dire di una più avanzata mappatura ORM che unisce tutti in una sola entità?

voglio farlo con un controllore e un'azione / visualizzazione per ogni operazione CRUD (1x4). Quando e se le modifiche dello schema su una o più tabelle di ricerca, vorrei trattare con esso allora. In caso contrario, pensare al lavoro comportato se si aggiunge una colonna per ciascuna delle tabelle: si dovrebbe aggiornare 48x12 o qualsiasi file.

Le specifiche di come lo fate dipendono dal modello, ma potrebbe essere fatto semplicemente utilizzando ADO.NET e tornare un DataTable o simile popolata con un'istruzione SQL dinamico in cui il nome della tabella è fornita dalla vista. Si avrebbe bisogno di guardia contro SQL injection, naturalmente, se si sta utilizzando una concatenazione di stringhe.

Il Crea vista sarebbe similmente utilizzare il nome della tabella proveniente dal modulo inviato per sapere quale tabella per aggiornare con i dati pubblicati.

considerare di usare modelli T4 ( esempio decente ) per costruire tutto. Dovreste essere in grado di codificare gen controllori e viste basate ciascun modello.

Siamo spiacenti, la mia risposta è di andare con i 48 punti di vista e 12 controllori ... avere il codice gen impostato in modo che se si aggiungono altri tipi di ricerca, tutto quello che dovete fare è eseguire nuovamente il codice, e boom, i controller e le viste sono impostati.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top