Ho lavorato su un progetto ASP.NET MVC Core 2.0 (destinato a .NET Core 2.0) che deve fare uso di Entity Framework. Il database da utilizzare esiste già e non posso cambiarlo. Ho aggiunto tutti i riferimenti richiesti a Entity Framework Core 2.0.
Tuttavia, quando eseguo il seguente comando scaffolding dalla console Nuget Package Manager, ottengo le classi di modelli POCO per le tabelle con lettere maiuscole e minuscole diverse rispetto alle tabelle originali. Oltre alle altre differenze, le colonne con sottotitoli nei loro nomi sono rappresentate da proprietà senza le sottolineature.
Come posso forzare lo scaffolding a lasciare tutti i nomi di tabelle e colonne così come sono quando vengono generate le classi del modello POCO?
Esempio di comando scaffold. Scaffold-DbContext "Server = Info; Database = Vehicles; Trusted_Connection = True;" Microsoft.EntityFrameworkCore.SqlServer -OutputDir Models â € "forza
(Pubblicazione per la prima volta su Stack Overflow. Grazie per il tuo aiuto.)
L'opzione -UseDatabaseNames
scopo di conservare i nomi esattamente come sono nel database (con solo correzioni minori se non sono identificativi C # validi).
Sfortunatamente, questa opzione è stata lasciata fuori dal comando Scaffold-DbContext
nella versione 2.0 (numero 9146 ) e non è stata applicata ai nomi di proprietà (numero # 9820 ). Dovrai aspettare EF Core 2.1 per usarlo come previsto. Se sei desideroso di provarlo prima, puoi sempre utilizzare le build notturne .
Soluzione: devi aggiornare a. Net Core 2.1+
, quindi è possibile eseguire Scaffold-DbContext -UseDatabaseNames
. Ho provato questo in rete 2.1 RC, sta funzionando ora.