Nello script #345 abbiamo visto come creare una convenzione custom da utilizzare in Code First con Entity Framework 6. In quello script abbiamo sfruttato il metodo OnModelCreating della classe DbContext. Se da un lato questa tecnica ci permette di aggiungere facilmente una convenzione a un contesto, dall'altro ci impedisce di riusarla su più contesti a meno che non si duplica il codice su ogni contesto.
Entity Framework 6 permette di creare classi all'interno delle quali possiamo definire convenzioni; se mettiamo queste classi in un assembly, poi possiamo usarle in più progetti riutilizzando quindi il codice invece che usando il copia e incolla.
Per creare una classe che contiene una convenzione custom, dobbiamo creare una classe che eredita da Convention e, nel suo costruttore, inserire il codice per la convenzione custom così come mostrato nel seguente snippet.
public class KeyConvention : Convention
{
public KeyConvention()
{
var prop = 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 esattamente come se ci trovassimo nel metodo OnModelCreating del DbContext.
Commenti
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.
Approfondimenti
Evidenziare una porzione di testo in un pagina dopo una navigazione
Utilizzare Intersect e Except per filtrare set di dati in TSql
Utilizzare i variable font nel CSS
Disabilitare le run concorrenti di una pipeline di Azure DevOps
Proteggere l'endpoint dell'agente A2A delle Logic App
Loggare le query più lente con Entity Framework
Utilizzare Locust con Azure Load Testing
La gestione della riconnessione al server di Blazor in .NET 9
Recuperare gli audit log in Azure DevOps
Keynote .NET Conference Italia 2025
Usare la libreria PredicateBuilder per eseguire query tramite Entity Framework che usano or su più campi
Recuperare le subissue e il loro stato di completamento in GitHub
I più letti di oggi
- Effettuare il multi-checkout in linea nelle pipeline di Azure DevOps
- Gli oggetti CallOut di Expression Blend 4.0
- Alleggerire le applicazioni WPF sfruttando gli oggetti Freezable
- Esaminare documenti XML con namespace utilizzando LINQ to XML
- Sfruttare una CDN con i bundle di ASP.NET
- Le DirectInk API nella Universal Windows Platform
- Inserire le news di Punto Informatico nel proprio sito


