Impostazione della libreria di classi .x core 2.x con ef core 2. Ho generato lo scaffolding per le entità dal mio schema db. Tuttavia, ho dimenticato di controllare anche se esiste un'opzione per pluralizzare i nomi delle entità. L'ho notato quando ho estratto uno dei miei metodi da una libreria di classi che utilizza EF 6.1 e le entità sono pluralizzate. C'è un'opzione per questo e semplicemente rigenerare le mie entità come pluralizzate?
Scrivi una classe che implementa l'interfaccia Microsoft.EntityFrameworkCore.Design.IPluralizer
. Puoi scrivere il tuo o utilizzare un pacchetto Inflector
come Inflector
public class Pluralizer : IPluralizer
{
public string Pluralize(string name)
{
return Inflector.Inflector.Pluralize(name) ?? name;
}
public string Singularize(string name)
{
return Inflector.Inflector.Singularize(name) ?? name;
}
}
Scrivi una classe che implementa l'interfaccia Microsoft.EntityFrameworkCore.Design.IDesignTimeServices
per registrare la tua implementazione di IPluralizer
nel tuo progetto di struttura di entità.
public class DesignTimeServices : IDesignTimeServices
{
public void ConfigureDesignTimeServices(IServiceCollection services)
{
services.AddSingleton<IPluralizer, Pluralizer>();
}
}
Esegui (o riesegui) il comando Scaffold-DbContext
dalla console del gestore pacchetti come al solito. Se si desidera sovrascrivere il codice generato in precedenza, è necessario l'opzione -force
.