Martes, 20 de junio de 2017

Creando una cadena de conexión (Connection String) y trabajando con SQL Server LocalDB.

La clase MovieDBContext tiene la tarea de conectar la base de datos y "mapear" los objetos de Movie con los registros de la base de datos. Una pregunta que seguro te estas haciendo, es como especificar a que base de datos nos conectaremos. Por ahora no tienes que especificar cual base de datos usar, el EF por default usa LocalDB. En esta sección agregaremos explicitamente una cadena de conexión en el archivo Web.configde la aplicación.

SQL Server Express LocalDB

LocalDB es una versión ligera del motor de base de datos SQL Server Express que inicia a petición y se ejecuta en modo usuario. LocalDB corre en un modo especial de ejecución de SQL Server Express que te habilita para que trabajes con bases de datos como archivos .mdf. Tipicamente, los archivos de las bases de datos LocalDB se almacenan en la carpeta App_Data del proyecto web.

SQL Server Express no es recomendado para usarlo en aplicaciones web en producción. LocalDB en particular no debería ser usado para aplicaciones Wen en producción porque no esta diseñada para trabajar con IIS. Sin embargo, una base de datos LocalDB puede ser fácilmente migrada a SQL Server o a SQL Azure.

En las versiones de Visual Studio 2013 (y en 2012), LocalDB se instala por default con la instalación.

Por omisión, el EF "ve" por una cadena de conexión nombrada igual que el objeto de la clase de contexto ( MovieDBContext para este proyecto).

Abrimos la carpeta raíz como se muestra a continuación.

Busca el elemento <connectionStrings>.

Agrega la siguiente cadena de conexión en el archivo Web.config.

<add name="MovieDBContext" connectionString="Data Source=(LocalDB)\v11.0;AttachDbFilename=|DataDirectory|\Movies.mdf;Integrated Security=True"

providerName="System.Data.SqlClient"/>

Las dos cadenas de conexión son muy similares. La primera conexión es nombrada como DefaultConnection y es usada para la membresía de la base de datos para controlar quien puede accesar a la aplicación, para este tutorial no usaremos esta conexión. La cadena de conexión que has agregado especifica la base de datos LocalDB nombrada Movie.mdf y que se localizará en el folder App_Data.

El nombre de la cadena de conexión debe coincidir con el nombre de la clase DbContext.

using System;

using System.Data.Entity;

namespace MvcFilms.Models

{

public class Movie

{

public int ID { get; set; }

public string Title { get; set; }

public DateTime ReleaseDate { set; get; }

public string Genre { set; get; }

public decimal Price { set; get; }

}

public class MovieDBContext : DbContext

{

public DbSet<Movie> Movies { set; get; }

}

}

En realidad no es necesario agregar la cadena de conexión MovieDBContext, sino la espcificas el EF creará una base de datos LocalDB en el directorio de los usuarios con el nombre completo cualificado de la clase ( en este caso MvcMovie.Models.MovieDBContext). Tu puedes nombrar la base de datos con cualquier nombre.

En la siguiente entrega construiremos una nueva clase MoviesController que la puedes usar para desplegar los datos de las películas y permitir a los usuarios crear nuevas listas de películas.

Profesor Enrique Nash.


Publicado por neofito69 @ 21:20  | .NET - C#
Comentarios (0)  | Enviar
Comentarios