Hola amigos, en esta ocasión vamos ver cómo usar Entity Framework con una base de datos en la nube, más específicamente Sql Azure, vamos a ver cómo interactúan estas dos tecnologías, para esto vamos a crear nuestra base de datos Sql Azure, y luego vamos a crear nuestro modelo en Entity Framework usando el enfoque
Data Base First y por último vamos a crear un sitio web con Asp.Net MVC para ver cómo funciona.
Antes de iniciar me parece oportuno hablar un poco acerca de Sql Azure:
Sql Azure: Base de datos relacional hospedada en la nube, basada en sql server, permite alta escalabilidad y automatización, garantiza alta disponibilidad, mantenimiento y actualización garantizado y ejecutado por Microsoft.
Ahora iniciemos creando nuestra base de datos en Sql Azure, para esto ingresamos a nuestro administrador de Microsoft Azure y elegimos la opción "Base de datos Sql":
Posteriormente hacemos clic en la opción "Nuevo" señalada en la imagen anterior, con la cual se nos mostrará la siguiente pantalla:
Allí elegimos la opción de creación rápida, en la cual solo debemos especificar el nombre de la base de datos y el servidor en el cual se creará o si deseamos podemos crear un nuevo servidor, para nuestro ejemplo llamaremos la base de datos "DemoEfSqlAzure" y elegiremos la opción de crear nuevo servidor, para lo cual debemos seleccionar una región de ubicación del servidor, un nombre de inicio de sesión y una contraseña y para terminar la creación hacemos clic en el botón "Crear base de datos Sql".
Ahora que tenemos nuestra base de datos creada la vamos a seleccionar y elegir la opción "Administrar", de inmediato se nos muestra en siguiente mensaje:
Es importante elegir la opción "Si" para que se agregue la excepción en el Firewall de este modo podamos acceder a nuestra base de datos de manera remota. Posteriormente se abre la consola de administración de la base de datos en la cual podemos agregar, modificar, eliminar tablas, modificar su estructura y demás operaciones en la base de datos.
Posteriormente vamos a crear una nueva tabla en nuestra BD llamada estudiantes:
Ahora que tenemos nuestra base de datos el siguiente paso es crear nuestro modelo en Entity Framework basado en ella, y para esto vamos a abrir nuestro excelente IDE Visual Studio y vamos a crear un nuevo proyecto de tipo librería:
y una vez creado el proyecto hacemos clic derecho sobre él y elegimos la opción agregar nuevo ítem, filtramos por ítems tipo datos y elegimos Ado.Net Entity Data Model y elegimos la opción agregar, y ahora se inicia el asistente para la creación de nuestro modelo conceptual, en el cual elegiremos el enfoque
"Ef designer from DataBase" del cual hemos hablado en artículos anteriores.
Ahora debemos suministrar los datos de conexión a nuestra base de datos en la nube, más específicamente los siguientes:
El nombre del servidor lo podemos tomar de nuestro sitio de administración de Sql Azure, seleccionando nuestra base de datos y observando la sección de conexión a la base de datos, tal y cómo se muestra en la siguiente imagen:
Posteriormente probamos que nuestra conexión esté funcionando correctamente, seleccionamos la versión de Entity Framework con la que vamos a trabajar, en nuestro caso la 6.0, y por ultimo seleccionamos los objetos de la base de datos que queremos mapear:
Perfecto, ahora tenemos listo nuestro modelo conceptual en Entity Framework mapeado a nuestra base de datos en la nube, ahora para terminar nuestro ejemplo vamos a crear en la misma solución de Visual Studio un nuevo proyecto web Asp.Net MVC desde el cual vamos a consumir nuestro modelo conceptual de EF para probar su funcionalidad.
En primera instancia en nuestro proyecto de MVC vamos a referenciar nuestra librería creada anteriormente para lograr ver nuestro contexto, luego compilamos la solución y además vamos a copiar en el web.config la cadena de conexión que tenemos en el app.config de dicha librería, esto para lograr conectarnos a la base de datos desde nuestra aplicación web.
Y para terminar vamos a hacer clic derecho sobre la carpeta Controllers de nuestra aplicación web y vamos a elegir la opción "agregar controlador", y vamos a elegir la plantilla "MVC 5 Controller with views, using Entity Framework" lo que nos generará todas nuestras vistas y nuestro controller con las acciones Crud básicas las cuales usan el contexto para acceder a nuestra base de datos en la nube:
Si esperamos unos segundos veremos que Visual Studio nos genera nuestras vistas y nuestro controlador, en el cual sus acciones básicas usan el contexto de Entity Framework para interactuar con la base de datos. Nuestra acción para obtener todos los estudiantes por ejemplo:
Y si ejecutamos nuestra aplicación por fin veremos que interactuamos correctamente con nuestra base de datos Sql Azure a través de Entity Framework y que podemos hacer operaciones básicas con nuestra tabla estudiantes a través de nuestra aplicación Asp.Net MVC.
Bueno amigos eso es todo de este ejemplo de cómo conectarnos a una base de datos Sql Azure desde Entity Framework, espero les sea de utilidad y de interés.
También puedes ver este vídeo donde explico paso a paso como hacerlo también, solo que esta vez usando el enfoque
CodeFirst:
Vídeo, usando EntityFramework y Sql Azure.
Saludos, y buena suerte!