Pregunta

En mi base de datos, hay tal vez una docena de tablas que representan tipos de búsqueda (todas tienen columnas ID y Nombre; no, deben permanecer como tablas separadas, no se normalizarán en una sola tabla).Estoy creando una aplicación de administración, donde quiero que un administrador pueda agregar/editar/eliminar/enumerar todas estas búsquedas.Sé que puedo reutilizar el modelo, pero ¿hay alguna forma más eficiente de escribir esto en una aplicación asp mvc 2, además de escribir 3 vistas, 1 controlador para cada tipo de búsqueda, lo que da como resultado 48 vistas y 12 controladores?

¿Fue útil?

Solución

No recomendaría retirar el acoplamiento entre sus modelos, los controladores y puntos de vista. La idea detrás de este patrón es que se llega a separar la lógica de negocio de la presentación del flujo de trabajo. Si usted comienza a mezclar varios modelos en los mismos puntos de vista / controladores, que se complica.

Tal vez intente hacer lo que está intentando utilizar una página maestra y tener sus modelos heredan de una clase base común o algo por el estilo en su lugar? De esta manera se puede reutilizar el código sin romper en los mismos archivos.

Otros consejos

¿Qué pasa con un mapeo ORM más avanzada que combina todos ellos en una sola entidad?

Me gustaría hacer esto con un controlador y una acción / vista para cada operación CRUD (1x4). Cuando y si los cambios de esquema en una o más tablas de búsqueda, me gustaría tratar con él entonces. De lo contrario, pensar en el trabajo que supone si se agrega una columna para cada una de las tablas: se tendría que actualizar 48x12 archivos o lo que sea.

Los detalles de cómo se hace dependen del modelo, pero podría hacerse simplemente utilizando ADO.NET y devolver un DataTable o similares poblada con una sentencia de SQL dinámico en el que el nombre de la tabla es suministrada por la vista. Lo que se necesita para proteger contra la inyección de SQL, por supuesto, si estuviera usando la concatenación de cadenas.

La vista Crear utilizaría similarily el nombre de la tabla que viene de la forma publicado saber qué tabla para actualizar con los datos publicados.

Considere el uso de plantillas T4 (ejemplo decente) para construir todo.Debería poder codificar los controladores y las vistas según cada modelo.

Lo siento, mi respuesta es ir con las 48 vistas y 12 controladores...configure la generación de código para que, si agrega más tipos de búsqueda, todo lo que necesite hacer sea volver a ejecutar el código y se configuren el boom, los controladores y las vistas.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top