Entity Framework Code First ha delle convenzioni che in base al nome della proprietà decidono se questa è una chiave primaria o una foreign key verso un'entità collegata. Ad esempio, se chiamiamo una proprietà Id, questa è automaticamente impostata come chiave primaria dell'entità. A partire dalla versione 6 di Entity Framework possiamo creare nostre convenzioni custom.
Un esempio di quando una convenzione possa tornare utile è quando programmiamo in italiano. Se ad esempio stabiliamo che la proprietà chiave di un'entità si deve chiamare Chiave possiamo specificare questa convenzione con il seguente codice.
protected override void OnModelCreating(DbModelBuilder modelBuilder) { var prop = modelBuilder.Properties().Where(p => p.Name.Equals("Chiave", StringComparison.OrdinalIgnoreCase)); prop.Configure(p => p.IsKey()); }
Il metodo Properties ritorna i metadati di tutte le proprietà e noi filtriamo col metodo Where di LINQ le proprietà che si chiamano Chiave. Successivamente le impostiamo come chiave con il metodo Configure e IsKey.
Commenti
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.
Approfondimenti
Eseguire attività con Azure Container Jobs
Evitare la command injection in un workflow di GitHub
Utilizzare le Cache API di JavaScript per salvare elementi nella cache del browser
Sfruttare i KeyedService in un'applicazione Blazor in .NET 8
Usare le collection expression per inizializzare una lista di oggetti in C#
Reactive form tipizzati con FormBuilder in Angular
Applicare il versioning ai nostri endpoint ASP.NET Core Minimal API
Utilizzare la session affinity con Azure Container Apps
Effettuare delete massive con Entity Framework Core 7
Utilizzare Model as a Service su Microsoft Azure
Evitare la script injection nelle GitHub Actions
Visualizzare le change sul plan di Terraform tramite le GitHub Actions
I più letti di oggi
- Miglioramenti nelle performance di Angular 16
- Ottimizzare le performance delle collection con le classi FrozenSet e FrozenDictionary
- HTML5 con CSS e JavaScript
- ecco tutte le novità pubblicate sui nostri siti questa settimana: https://aspit.co/wkly buon week-end!
- Ottimizzazione dei block template in Angular 17
- Disabilitare automaticamente un workflow di GitHub (parte 2)