none
mvc consulta a otra tabla que no esta en el modelo del cotrolador RRS feed

  • Pregunta

  • buenos días, en mvc4 con c#, necesito consultar cierta información de una tabla2 para saber como capturar la información de otra tabla1, pero dichas tablas no estas relacionadas(por cada elemento de la tabla 1 no corresponde cierto numero de elementos e la tabla 2), por lo que no se si es neceario que la tabla 2 aparezca en el modelo del controlador de la tabla 1, podrían orientarme

    martes, 15 de abril de 2014 16:34

Todas las respuestas

  • Estás mezclando dos Modelos distintos. Por una parte, existe el modelo de MVC, que sirve para contener los datos que se trasvasan del Controlador a la Vista. Este Modelo puede contener clases cualesquiera, su contenido no tiene por qué provenir de una base de datos.

    Y por otra parte, está el Modelo de datos, que se usa para contener los datos que se trasvasan desde la base de datos al Controlador. En este Modelo, típicamente tendrás una clase por cada tabla a la que vayas a acceder. Pero no es obligatorio usarlo, también podrías traer los datos desde la base de datos al Controlador usando una sentencia SQL enviada con un SqlCommand, y no manejar ningún Modelo de datos en absoluto.

    En los tutoriales y ejemplos sencillos, cuando la información que pasa del Controlador a la Vista es la misma que pasa desde la base de datos al Controlador, se suele usar un único Modelo para las dos cosas, dado que en ambos casos el contenido es el mismo. Pero en cuanto tu programa se complica, y el Controlador necesita traer datos de varias tablas, hacer cálculos con ellos, y mostrar en la Vista ciertos resultados diferentes de los datos que leyó inicialmente, entonces es importante distinguir los dos Modelos, en lugar de intenter usar uno para las dos cosas. Para clarificar las cosas, hay gente que al primer Modelo (el que pasa del Controlador a la Vista) le llama "VistaModelo", para no confundirlo con el Modelo empleado por el ORM para acceder a la base de datos.

    En tu caso: la Tabla1 y la Tabla2 estarán en el Modelo de Datos. En el modelo MVC no tiene por qué estar ninguna de las dos, sino una clase escrita a medida con una propiedad por cada dato que debas mostrar en la Vista. Esos datos los calculará el Controlador a partir de Tabla1 y Tabla2. En otras palabras, el Controlador "bombea" la información desde el Modelo de Datos al Modelo de MVC.

    martes, 15 de abril de 2014 18:12