EF 4 + CTP 5 = Code First : Database I

Los que me conozcan de este blog sabrán que no suelo hacer ningún 101, y menos aún a estas alturas de Entity Framework. Por supuesto, el no hacer ningun 101 de introducción no es por presunción sino porque generalmente siempre llego tarde a este tipo de cosas y ya hay en internet muchos ejemplos que revisar. El  caso de Code First y la CTP 5 de ADO.NET EF no es una excepción, para 101 y temas introducctorios el equipo de producto de Entity Framework tiene en su blog excelentes elementos introductorios sobre esta CTP que le recomiendo revisar. A lo largo de este post, y seguramente una lista que le seguirán, trataremos de ver diferentes elementos importantes dentro de las novedades de la CTP 5 y el uso de Code First.

Esta primera entrada la dedicaremos a los distintos aspectos relacionados con la base de datos y nuestro código de Entity Framework + Code First. Desde el nombre, la creación hasta elementos de extensibilidad que podremos utilizar.

Para empezar a hablar acerca de las convenciones de nombres, instancias dónde se crean y otros elementos relacionados con las base partiremos de un ejemplo trivial, nuestro objetivo ahora nos es fijarnos en mapeos de entidades ni elementos de los contextos, solamente en lo relacionado con la base de datos.

 

 

Si usaramos este ejemplo trivial de unidad de trabajo podríamos observar como automáticamente una nueva base de datos, llamada CustomerContext, se crea en la instancia con nombre SQLEXPRESS, lógicamente si esa instancia no existiera el código daría una excepción.  De aquí, ya sacamos varias conclusiones, acerca del tratamiento que esta CTP 5 hace con respecto a la creación de las bases de datos asociadas a nuestros contextos de trabajo.

 

  • Por convención, el nombre de la base de datos se extrae del nombre del contexto de trabajo asociado, de forma completamente cualificada.
  • El proveedor por defecto es Sql Server
  • La instancia por defecto es .SQLEXPRESS

Como se imaginará, todos estos elementos son configurables. A lo largo de las siguietes lineas iremos viendo como cambiar/modificar cada una de las convenciones anteriores. Empezaremos por lo más sencillo, modificar el nombre de nuestra base de datos, para ello, dipondremos de distintas alternativas. La primera, y también la más sencilla, es hacer uso de uno de los constructores que DbContext, clase base para los contextos de trabajo en Code First, gracias al cual podremos especificar el nombre de la base de datos que querramos construir o usar, opcionalmente también podríamos establecer la cadena de conexion.

En el siguiente ejemplo, vemos como hacer uso de este constructor para indicar que el nombre de nuestra base de datos querramos que sea SampleDB.

 

Otra via, para modificar el nombre de la base de datos a generar o usar, es por medio de nuestro archivo de configuración y la hiper conocida sección de cadenas de conexión, connectionstring. EF 4 + CTP 5 utiliza una convención por la cual puede extraer, la cadena de conexion y por lo tanto el nombre de la base de datos a usar, buscando en la sección de cadenas de conexión una con el nombre del contexto, perfectamente cualificado. Asi, si nuestro contexto fuera DatabaseNamingSample.CustomerContext, poniendo la siguiente entrada en nuestro archivo de configuracion podríamos establecer la cadena de conexión a utilizar o crear.

 

Continuará…..

 

Un saludo

Unai zorrilla Castro

3 comentarios sobre “EF 4 + CTP 5 = Code First : Database I”

Responder a anonymous Cancelar respuesta

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