Entity Framework
Entidad marco código primero
Buscar..
Conectarse a una base de datos existente
Para lograr la tarea más sencilla en Entity Framework: para conectarse a una base de datos de ExampleDatabase
Base de datos en su instancia local de MSSQL, debe implementar solo dos clases.
Primero está la clase de entidad, que se asignará a nuestra base de datos dbo.People
.
class Person
{
public int PersonId { get; set; }
public string FirstName { get; set; }
}
La clase utilizará las convenciones de Entity Framework y se dbo.People
a la tabla dbo.People
que se espera que tenga un clave principal, PersonId
y una propiedad varchar (max), FirstName
.
La segunda es la clase de contexto que deriva de System.Data.Entity.DbContext
y que administrará los objetos de la entidad durante el tiempo de ejecución, los agrupará desde la base de datos, manejará la concurrencia y los guardará de nuevo en la base de datos.
class Context : DbContext
{
public Context(string connectionString) : base(connectionString)
{
Database.SetInitializer<Context>(null);
}
public DbSet<Person> People { get; set; }
}
Tenga en cuenta que en el constructor de nuestro contexto debemos establecer el inicializador de la base de datos en nulo; no queremos que Entity Framework cree la base de datos, solo queremos acceder a ella.
Ahora puede manipular los datos de esa tabla, por ejemplo, cambiar el FirstName
de la primera persona en la base de datos desde una aplicación de consola como esta:
class Program
{
static void Main(string[] args)
{
using (var ctx = new Context("DbConnectionString"))
{
var firstPerson = ctx.People.FirstOrDefault();
if (firstPerson != null) {
firstPerson.FirstName = "John";
ctx.SaveChanges();
}
}
}
}
En el código anterior creamos una instancia de contexto con un argumento "DbConnectionString". Esto se debe especificar en nuestro archivo app.config
como este:
<connectionStrings>
<add name="DbConnectionString"
connectionString="Data Source=.;Initial Catalog=ExampleDatabase;Integrated Security=True"
providerName="System.Data.SqlClient"/>
</connectionStrings>