Creación visual de tablas para el uso con SQL CE y “Mango”.

Este post lo escribí originalmente en mi blog personal el día 03/08/2011.

¿Pero como que creación visual de tablas?, si se nos ha dicho que no, que debemos de picarnos todo el mapeo de nuestras bases de datos para trabajar con el DataContext a mano. Quizás alguna que otra herramienta podría ayudarnos pero poca cosa mas, siempre dependiendo de una base de datos ya existente. ¿No es así?

Pues no, os engañaron, bueno vale: nos engañaron.

Vamos a darles a los chicos de desarrollo de Windows Phone, el margen de la duda y pongamos que simplemente no nos lo han contado así para no liarnos y para no pensar que las cosas están un poquito a medias. Si en el fondo son chicos majos.

Pues SI, si que se puede y además de la manera mas tonta, quizás es que nadie lo ha probado, pero bueno yo creo que es un pequeño truco o apaño, pero mejor que picarnos a mano todo nuestro mapeo, para mi es mas que suficiente. MapeoDbml1

Para ello simplemente creare una aplicación mínima, y mostrare como se tiene que hacer: Creamos nuestra solución en la cual estará incluido obviamente nuestro proyecto de “Windows Phone Application”, a parte de esto crearemos simplemente para apoyarnos en la herramienta, dentro de nuestra solución (no es esto obligatorio) una biblioteca de clases.

Una vez que tenemos este esquema montado, procedemos a crear un nuevo elemento del tipo “Clases de LINQ to SQL”, fichero del tipo “.dbml” en nuestro proyecto de biblioteca de clases. Una vez creado este elemento procedemos a crear las clases de forma visual en nuestro “Object Relational Designer”.

En este ejemplo crearemos dos clases (Tablas) con una serie de propiedades (Columnas o campos) cada una de ellas. Así mismo también crearemos una asociación entre ambas y una clave secundaria en una de ellas para comprobar que mas o menos toda la funcionalidad que nos permite LINQ to SQL en nuestro Windows Phone, la podemos mapear de forma visual desde aquí. El esquema o mapeo de datos quedaría de la siguiente manera:

MapeoDbml2

Una vez realizado el mapeo de forma visual, debemos de fijarnos que junto a nuestro fichero original “.dbml”, existen 2 ficheros mas, el que define el layout del diseñador y el que nos interesa, el fichero con extensión “.designer.cs”. Este es el fichero que contiene todo el mapeo de datos que hemos creado anteriormente de forma visual y es el fichero que vamos a agregar a nuestro proyecto de “Windows Phone”.

Una vez añadido a nuestro proyecto “principal”, simplemente quitaremos un par de constructores que crea por defecto Visual Studio en el DataContext, que por otra parte son los dos mismos constructores que deberemos de quitar si utilizamos la herramienta SQLMetal para crear nuestro mapeo de datos. Estos constructores son los que nos solicita como parámetros de entrada los objetos del tipo “System.Data.IDbConnection”. MapeoDbml3 No deberemos de olvidarnos de agregar la referencia al ensamblado “System.Data.LINQ”, si queremos que todo esto nos funcione.

Punto y final, ya tenemos nuestro mapeo de datos terminado. Ahora a crear la base de datos y trabajar con ella. La única pega, pues que cada vez que queramos modificar nuestra base de datos deberemos de volver a importar nuestro fichero “.designer.cs” y volver a quitar los dos constructores comentados. Que es eso comparado con el trabajo que llevaría mapear a mano una base de datos nueva que sea un poco compleja.

Y para muestra un botón, aquí os dejo una captura de la estructura de base de datos que nos crea nuestro nuevo DataContext y un ejemplo completo de como hacerlo. MapeoDbml4 Ejemplo de como poder hacerlo:

Un comentario en “Creación visual de tablas para el uso con SQL CE y “Mango”.”

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *