Impostare una proprietà chiave con Entity Framework Code First

Scritto da  Antonio Pierascenzi il domenica 3 aprile 2011  •  Linguaggio:    • Livello: 100


Durante la creazione del nostro dominio e volendo utilizzare l'approccio CodeFirst di Entity Framework, arrivato alla versione 4.1, è possibile definire elementi chiave delle nostre entità quei campi che normalmente non vengono considerati tali, ricordiamo infatti che, per convenzione, CodeFirst considera chiavi le proprietà delle nostre entità aventi nome "Key", "Id" oppure "nomeentitàId" , "nomeentitàkey".
Per far diventare chiave ad esempio una proprietà avente nome "CodiceArticolo" dobbiamo aggiungere l'attributo [key] alla proprietà della classe, tale attributo fa parte del namespace System.ComponentModel.DataAnnotations.
Possiamo anche raggiungere lo stesso obiettivo tramite Fluent Api in fase di definizione del context attraverso la scrittura, nel metodo in override OnModelCreating(DbModelBuilder modelBuilder), delle seguenti righe di codice :

modelBuilder.Entity<Ordine>()
.HasKey(p => p.CodiceArticolo).Property(c => c.CodiceArticolo)
.HasDatabaseGeneratedOption(DatabaseGeneratedOption.Identity);

 

Con le quali impostiamo anche il campo come identity.


Tags: EF4,CodeFirst

 
x