You are on page 1of 16

MCV3 Entity Framework y Procedimientos Almacenado

3 comentariosPublicado por manguher en 27 junio, 2012 Kiu , soy Manu, vivo en chile , Concepcin especificamente , pero ahora estoy en Santiago trabajando y aprendiendo algunos cosas, las cuales quiero ir compartiendo en este espacio. Bueno , Al grano . Para empezar generamos nuestro modelo desde Sql Server Managment Estudio (express obviamente), a continuacion muestro un pequeo modelo de dos tablas , a modo de ejemplo para este post.

Como el ttulo de esta entrada hace mensin a que trabajaremos con SP (Store Procedure), ahora mostrar como crear un nuevo SP desde SQL Managment para posteriormente utilizarlo en nuestro web. Vamos a nuestra base de datos a la carpeta Programacin , click derecho y le damos a Nuevo procedimiento almacenado .

Nos generar un codigo automtico , pero lo ms importante son las sentencias que marqu en Rojo. Como es un ejemplo bsico, el SP solo ir a buscar un listado de los usuarios. Y con esto ya tenemos lo ms importante.

Ok , ahora ya tenemos un modelo de prueba Para crear nuestro proyecto web con MVC3 y EF, deben crear un nuevo proyecto en VS (en mi casao VS2010 que lo consegui en el trabajo), Luego seleccionar proyecto Web-> MVC3. En este caso usaremos c# para comunicarnos con EF (Entity Framework)

Ahora seleccionamos un proyecto web vacio y que utilize el view engine Razor, el cual nos ser de gran utilidad al momento de trabajar con asp.NET , HTML y C#.

Le damos a OK y asi obtendremos nuestro proyecto con MVC3 listo para empezar. El siguiente paso es incluir un modelo de datos a nuestro proyecto web, para eso agregamos un Nuevo elementodel tipo Datos, en este caso usaremos ADO.NET Entity Data Model. Despus elegir contenido del modelo, que debe ser : Generar desde la BD

Le damos a Siguiente , seleccionamos nuestra base de datos y los SP que tengamos agregados.

con esto ya tenemos incluido el modelo a nuestro proyecto , ahora debemos Importar la funciones o SP

Le damos un nombre al SP, lo seleccionamos y le indicamos el tipo de la Coleccin que devuelve el SP.

ahora ya tenemos vinculado todos los elementos de nuestro modelo con VS.

Nos queda poco, solo tenemos que generar la base de datos desde nuestro modelo.edmx.

A continuacin le decimos a VS que mapee nustro modelo y genere los archivos .TT para trabajar con EF el acceso a las clases Entidades POCO generadas por ADO.NET POCO Entity Generator. Para esto, desde el modelo que entrega VS , hacemos Click derecho y seleccionamos agregar elemento de generacin de cdigo.

Se nos agregarn dos archivos al proyecto , uno es Modelo.Context.tt , el cual nos genera el contexto para manipular nuestra Base de datos a un nivel mas Abastracto. Tambien se nos agregar Model.tt que son las clases que conforman nuestro modelo de datos.

Bueno ahora que ya tenemos todo listo, vamos a Agregar un controlador , un modelo y una vista para usar nuestro pequeo procedimiento almacenado. Agregamos una clase en el directorio Model para preparar la conexion con el Contexto. Para eso he creado una clase ModelUsuario.cs la cual contiene un constructor que genera una instancia de conexin con mi base de datos. Adems un mtodo que llame nuestro procedimiento almacenado (GetUsuarios) y nos retorne nuestro preciado Listado de usuarios.

Ahora el Controlador Primero importamos nuestro directorio Models para poder acceder a las clases que se encuentran ah. luego en nuestra accin, creamos un objeto de la clase UsuarioModel para llamar al mtodo que usa nuestro SP.

La vista La creamos fuertemente tipada a la clase usuarios la cual fue generada por EF y adems le decimos que genere una lista segn lo que le haya entregado mi accin desde el contralador.

y la vista quedaris asi

Cualquier comentario o sugerencia se agradece, saludos.

Vista dentro de otra vista con MVC3 , Razor y Jquery Ajax


Deja un comentarioPublicado por manguher en 4 julio, 2012 Para empezar los elementos principales son :

Modelo: En este caso consultaremos a un sp (store procedure ) para ir a buscar los datos de una tabla en especifico. Vista : Desde donde llamaremos y cargaremos a otra vista. Controlador: Se comunica con el modelo y le entrega los datos necesarios a la vista.

Bien , como lo primero es el modelo , vamos al Modelo.

Este post esta relacionado al post anterior, por ende no explico el acceso a los datos, simplemente estamos aplicando algunas cosas que puedan servir (desde el desarrollo web , claro esta). Controlador.

El controlador posee una accin que se llama Detalles, esta accin lo nico que hace , es recibir un parametro de entrada idUser e l cual se pasa desde la vista Index a la vista Detalles travs del objeto $.ajax que nos proporciona Jquery. La vista Index se ve algo as.

el cdigo de esta vista es el siguiente.

@model IEnumerable<MVC3EF.usuarios> @{ ViewBag.Title = "Index"; } <script type="text/javascript"> $(document).ready(function () { $(".detalle-user > a").click(function () { event.preventDefault() var userId = $(this).attr("id"); // obtengo el id del usuario $.ajax({ type : "POST", url : "@(Url.Action("Detalles", "Usuarios"))", // se dirige a la accin "Detalle" del controlado traditional : true, data : {idUser:userId}, // paso el parametro que necesita el controlador success : function(data){ $("#cargaVista").html(data); // carga el cdigo html en el div "cargaVista", este cdigo es retornado por el controlador. } }); }) })

</script> <h2>Index</h2> <p> @Html.ActionLink("Create New", "Create") </p> <table> <tr> <th></th> <th> us_id </th> <th> us_nombre </th> <th> us_pass </th> <th> idTipoUser </th> </tr> @foreach (var item in Model) { <tr> <td class="detalle-user"> <a id="@(item.us_id)" href="#">Detalles</a> </td> <td> @item.us_id </td> <td> @item.us_nombre </td> <td> @item.us_pass </td> <td> @item.idTipoUser </td> </tr> } </table> <div id="cargaVista"> <!-- aqui se carga la vista "Detalles"--> </div>

Para que carge la vista Detalle dentro de Index , hacemos click en el link Detalles , con esto activamos el evento click y se realiza la carga en el div cargaVista, se veria de esta forma.

You might also like