Quando mappiamo il nostro modello verso il database, ci sono moltissime cose a cui dobbiamo prestare attenzione come la lunghezza dei campi di tipo string, il tipo che vogliamo assegnare alle proprietà di tipo Datetime e altro ancora. Molto spesso queste impostazioni sono uguali per tutte le proprietà come il fatto che le stringhe devono essere tutte non unicode, che i value type convertiti in JSON hanno lo stesso mapping e così via. In queste situazioni può tornare utile specificare un mapping non per proprietà, ma globalmente per il tipo.
A partire da Entity Framewok Core 6, possiamo specificare queste convenzioni eseguendo l'override del metodo ConfigureConventions della classe DbContext così come mostrato nell'esempio.
protected override void ConfigureConventions(ModelConfigurationBuilder configurationBuilder) { configurationBuilder .Properties<string>() .AreUnicode(false) .HaveMaxLength(1024); }
In questo esempio, con il metodo Properties specifichiamo che tutte proprietà di tipo string hanno una lunghezza di 1024 caratteri e non sono unicode. Ovviamente se impostiamo questi stessi parametri di mapping in una proprietà di una entity, quelli di default vengono sovrascritti. Per fare un esempio, se sulla proprietà Nome dell'entity Persona impostiamo una lunghezza di 50, verrà usata quella e non quella 1024.
Commenti
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.
Approfondimenti
Creare un'applicazione React e configurare Tailwind CSS
Autenticarsi in modo sicuro su Azure tramite GitHub Actions
Utilizzare politiche di resiliency con Azure Container App
.NET Conference Italia 2023
Gestire errori funzionali tramite exception in ASP.NET Core Web API
Mascherare l'output di un valore all'interno dei log di un workflow di GitHub
Le novità di Angular: i miglioramenti alla CLI
Accesso sicuro ai secrets attraverso i file in Azure Container Apps
Load test di ASP.NET Core con k6
Creare form tipizzati con Angular
Come EF 8 ha ottimizzato le query che usano il metodo Contains
Hosting di componenti WebAssembly in un'applicazione Blazor static
I più letti di oggi
- C# 4
- Spaziatura tra i caratteri in Silverlight 5
- ecco tutte le novità pubblicate sui nostri siti questa settimana: https://aspit.co/wkly buon week-end!
- Segui in tempo reale il TechEd 2004
- da oggi è possibile fare login velocemente con LinkedIn e Google. a questi si aggiunge il supporto già attivo per Facebook, Twitter, Microsoft Account, Windows Hello e OpenID, per darvi sempre più possibilità di accedere semplicemente alla nostra community! #aspitalia
- Migrare una service connection a workload identity federation in Azure DevOps
- Evitare postback multipli in un UpdatePanel