Post Etapa 1 Mi Primer Entity Framework y Microsoft SQL Server
May 25, 2015
Post Etapa 1
Mi Primer Entity Framework yMicrosoft SQL
Server
Creamos nuestro proyecto, sin ningún detalle inicial extra, únicamente una solución de Windows tal cual la crea el Visual Studio.
Procedemos a nuestro Management Studio del SQL Server y verificamos que nuestra base de datos y tabla de interés estén ok para empezar a trabajarlas.
Es una tabla muy sencilla con 5 campos y uno de ellos es una llave principal, tiene una lógica muy básica, pero justa para nuestros primeros pasos.
Ahora nos volvemos al Visual Studio donde, empezaremos a trabajar con el proyecto agregando nuestro modelo de datos usando ADO.Net Entity Framework 4.
Sobre el proyecto agregamos un nuevo elemento
En el subgrupo de datos, encontramos un modelo de datos ADO.NET Entity Framework, el cual va almacenar nuestro modelo conceptual de los datos para poder utilizarlos en nuestro lenguaje de programación de una forma mas natural.
El asistente de creación nos pregunta si queremos generarlo desde un BD existente o si queremos armarlo nosotros mismo, recuerden que esta herramienta nos permite trabajar con muchos sistemas finales de almacenamiento.
Procedemos a escoger si usamos un proveedor de datos, que se encuentran agregados en este momento a .NET, aquí es donde se escogen los conectores y manejadores de otros motores para facilitar la conexión con MYSQL, POSTGRES, etc., si es el caso.
Recuerden que para este ejemplo únicamente usaremos SQL Server de Microsoft, para obtener nuestros datos.
Registramos nuestra información del servidor y la autenticación correspondiente, para que el modelo de datos, se comunique con la estructura real almacenada en la BD.
El asistente de Entity Data Model, nos pregunta si queremos guardar, o almacenar la cadena de conexión, esto es una muy buena idea, ya que se crea un archivo de configuración en que se almacena la información relevante de la conexión.
Este archivo nos permite alterar la cadena de conexión real, a la hora de hacer un despliegue de nuestra creación. Ya que la información en este momento es la de la maquina de desarrollo.
Esta parte es bien, útil ya que podemos modelar no solo nuestras tablas sino, consultas y procedimientos almacenados, que se encuentran en nuestra BDAgregamos un nombre de espacio, un namespace que nos ayude a identificar nuestro contexto, de la base de datos, a la hora de usarlo.
Cuando finalizamos la selección y ubicación de parámetros, obtenemos nuestra representación como objeto de nuestra tabla, además el asistente agrego una serie de referencias que son necesarias para el funcionamiento de nuestro EF.
Observemos la información guardada en nuestro archivo de configuración, aquí se encuentra nuestra cadena de conexión totalmente modificable de acuerdo a nuestra necesidad final como les decía anteriormente.
Ahora un poco de carpintería creando los controles, usamos 5 textbox, 5 label, 4 button, y 2 datagridview, esto para Windows Forms, también sus equivalente para el proyecto de WPF, hago ambos proyectos en simultaneo para demostrar que es el mismo proceso y que es transparente a su necesidad, ya que esto es lo que llamaríamos la persistencia de datos en un desarrollo con patrones arquitectónicos.
Una nota si están empezando con WPF creen las DataGrid de esta forma para cuando procedamos a llenar la fuente de los datos del control no les presente ningún inconveniente. (Existen muchas mas formar de asociar datos al control, esta es para solucionar nuestra real ocupación, que es llenarlo)
Este es el código que vamos a utilizar cuando cargue nuestra app, el cual usa dos colecciones, inicializa nuestro contexto de datos, realiza una consulta para retornar toda la información de la tabla ‘contactosimple’ y finalmente llena el control para mostrar los datos.
En estos namespace de la System.Data.Entity encontramos los tipos de datos para las consultar realizadas a los modelos conceptuales de LINQ to Entities.
Instanciamos e inicializamos nuestro contexto de datos, para ser usado, como ven nuestra tabla ahora es un entidad que contiene una tabla contactosimple. En la sentencia de consulta encontramos una sentencia LINQ para traer nuestro contenido con un SELECT.Finalmente realizamos las dos sentencias que están realizadas de distinta forma para que podemos trabajar con estos datos traídos, convertir lo retornado en una lista de datos ordenados tal como los aceptados por los controles que exponen columnas y filas.
Para empezar esta parte final hay que aclarar que el botón consultar y limpiar, los encontraras en el código fuente, ya que no tienen nada sobresaliente fuera de lo explicado anteriormente, en la parte del constructor del formulario. Inicializamos el
contexto cerrado, hacemos una verificación del contenido de los textos, realizamos creamos un objeto contactosimple que es la tabla, este objeto tiene la misma estructura entonces contiene los nombres de los campos, a lo cuales le asociamos las cajas de texto, y usamos los métodos del contexto de la base de datos, para agregar un item a la tabla contactosimple , este item ya viene con la estructura y finalmente se guardan cambios.
Para el método final de actualizar el contenido tememos que crear una variable del tipo contactoSimple para heredar la estructura de la tabla y simplemente llenar cada campo con el nuevo contenido, una vez terminada la recolección de datos, procedemos a organizar el contexto mediante una sentencia para que busque dentro el id dentro de la tabla y una
Vez encontrado, sobre este se actualicen los valores que actualmente tengo en mi variable, finalmente se guardan los cambios con el método del contexto de la base de datos y finalmente se actualizo este ítem.