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