Entity Framework 4.1 – Introduzione alle novità


Devo ammetterlo la nuova versione di EF la 4.1 mi sta piacendo molto, certo il team di EF ha ancora molto lavoro da fare per raggiungere il livello di NHibernate, il quale rimane ancora oggi il miglior ORM per chi vuol sviluppare con la piattaforma .NET, ma sono sulla strada giusta.

La versione 4.1 di EF, introduce il nuovo modello di sviluppo code-first, che si affianca alle altre due modalità model-first e database-first, già presenti nella precedente versione.
Personalmente trovo il nuovo approccio code-first più vicino al mio modo di sviluppare codice, in quanto ho delle preferenze per lo sviluppo DDD (Domain Driven Development).

In pratica la prima cosa che faccio quando inizio un nuovo progetto è quello di definire le entità che meglio modellano lo scenario (attraverso la scrittura di classi C#) in cui dovrà operare l’applicazione che dovrò realizzare, senza dovermi preoccupare (inizialmente) di come queste debbano essere persistite. Dal punto di vista del codice.

public class User
{
public int Id { get; set; }
public string FirstName { get; set; }
public string LastName { get; set; }
public string Email { get; set; }
}

L’unico overhead aggiunto da EF 4.1 è la definizione di una classe che estenderà DbContext, la quale rappresenta in punto d’ingresso per gestire la persistenza delle entità. Ad esempio:

public class MyContext : DbContext
{
public DbSet<User> Users { get; set; }
}

Finito!

Nessun database creato, nessuna tabella definita.

Adesso ci basterà scrivere una normale query Linq per recupare i dati dal database:

var ctx = new MyContext();

var query = from o in ctx.Users select o;

var users = query.ToList();

Cosa è successo?

Semplicemente (si fa per dire), al momento dell’esecuzione del metodo ToList() il motore di EntityFramework genererà per noi un database (sql server) con il nome MyContext e le tabelle necessarie a persistere le classi definite come DbSet nella classe MyContext, infone verrà effettuata la query T-Sql generata dal provider Linq dell’Entity Framework.

Lascia un commento

Inserisci i tuoi dati qui sotto o clicca su un'icona per effettuare l'accesso:

Logo WordPress.com

Stai commentando usando il tuo account WordPress.com. Chiudi sessione / Modifica )

Foto Twitter

Stai commentando usando il tuo account Twitter. Chiudi sessione / Modifica )

Foto di Facebook

Stai commentando usando il tuo account Facebook. Chiudi sessione / Modifica )

Google+ photo

Stai commentando usando il tuo account Google+. Chiudi sessione / Modifica )

Connessione a %s...