Entity Framework
Entity Framework Code First
Ricerca…
Connetti a un database esistente
Per ottenere il compito più semplice in Entity Framework - per connettersi a un database di ExampleDatabase
esistente ExampleDatabase
locale di MSSQL, è necessario implementare solo due classi.
La prima è la classe di entità, che verrà mappata alla nostra tabella di database dbo.People
.
class Person
{
public int PersonId { get; set; }
public string FirstName { get; set; }
}
La classe utilizzerà le convenzioni di Entity Framework e dbo.People
alla tabella dbo.People
che dovrebbe avere la chiave primaria PersonId
e una proprietà varchar (max) FirstName
.
La seconda è la classe di contesto che deriva da System.Data.Entity.DbContext
e che gestirà gli oggetti entità durante il runtime, renderli pupillari dal database, gestire la concorrenza e salvarli nuovamente nel database.
class Context : DbContext
{
public Context(string connectionString) : base(connectionString)
{
Database.SetInitializer<Context>(null);
}
public DbSet<Person> People { get; set; }
}
Ti preghiamo di notare che nel costruttore del nostro contesto abbiamo bisogno di impostare l'inizializzatore del database su null - non vogliamo che Entity Framework crei il database, vogliamo solo accedervi.
Ora puoi manipolare i dati da quella tabella, ad esempio cambiare il FirstName
della prima persona nel database da un'applicazione console come questa:
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();
}
}
}
}
Nel codice sopra abbiamo creato l'istanza di Context con un argomento "DbConnectionString". Questo deve essere specificato nel nostro file app.config
come questo:
<connectionStrings>
<add name="DbConnectionString"
connectionString="Data Source=.;Initial Catalog=ExampleDatabase;Integrated Security=True"
providerName="System.Data.SqlClient"/>
</connectionStrings>