Per generare il DbContext e le classi di mapping verso il database, Entity Framework Core mette a disposizione il commando Scaffold-DbContext da lanciare nella finestra "Package Manager Console". Quando usiamo questo comando, Entity Framework genera (per default) una classe per ogni tabella nel database creando nella classe una proprietà per ogni colonna nella tabella. Per creare i nomi di classi e colonne, Entity Framework Core utilizza internamente delle convenzioni che non sono modificabili.
Non mantenere i nomi originali può non essere un problema in alcuni casi, ma in altri può esserlo. Utilizzando dell API interne, possiamo istruire Entity Framework Core per non alterare i nomi di tabelle e colonne. Per fare questo dobbiamo innanzitutto creare le seguenti due classi nell'assmbly in cui vogliamo enerare il codice.
public class ScaffoldingDesignTimeServices : IDesignTimeServices { public void ConfigureDesignTimeServices(IServiceCollection services) { services.AddTransient<ICandidateNamingService, ScaffoldingCandidateNamingService>(); } } public class ScaffoldingCandidateNamingService : CandidateNamingService { public override string GenerateCandidateIdentifier(string original) { return original; } }
La classe ScaffoldingDesignTimeServices configura nel motore di DI di .NET Core la classe ScaffoldingCandidateNamingService come responsabile della creazione del nome di classi e proprietà. Questa classe riceve in input il nome originale di tabelle e colonne dal database e ritorna il valore senza modificarlo.
Il secondo step consiste nell'impostare il progetto come progetto di startup in Visual Studio 2017.
Il terzo e ultimo step consiste nell'invocare il commando Scaffold-DbContext.
Commenti
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.
Approfondimenti
Il nuovo controllo Range di Blazor 9
Aggiornare a .NET 9 su Azure App Service
Utilizzare la funzione EF.Parameter per forzare la parametrizzazione di una costante con Entity Framework
Utilizzare Locust con Azure Load Testing
Integrare un servizio esterno con .NET Aspire
Esporre i propri servizi applicativi con Semantic Kernel e ASP.NET Web API
Potenziare la ricerca su Cosmos DB con Full Text Search
Gestione degli eventi nei Web component HTML
Effettuare il log delle chiamate a function di GPT in ASP.NET Web API
Referenziare un @layer più alto in CSS
Persistere la ChatHistory di Semantic Kernel in ASP.NET Core Web API per GPT
Introduzione ai web component HTML
I più letti di oggi
- Documentare i servizi REST con Swagger e OpenAPI con .NET 9
- ecco tutte le novità pubblicate sui nostri siti questa settimana: https://aspit.co/wkly buon week-end!
- ecco tutte le novità pubblicate sui nostri siti questa settimana: https://aspit.co/wkly buon week-end!
- .NET Conference Italia 2024 - Milano
- Gestione CSS in Blazor con .NET 9