Reputation: 6852
Setting my a .net core 2.x class library with ef core 2. Have generated the scaffolding for the entities from my db schema. However, I forgot to even check whether there as an option to pluralize the entity names. I noticed this when I pulled over one my methods from a class library that uses EF 6.1 and the entities are pluralized. Is there an option for this and to simply regenerate my entities as pluralized?
Upvotes: 2
Views: 1783
Reputation: 51504
Write a class that implements the Microsoft.EntityFrameworkCore.Design.IPluralizer
interface. You can write your own, or use a NuGet package such as 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;
}
}
Write a class that implements the Microsoft.EntityFrameworkCore.Design.IDesignTimeServices
interface to register your IPluralizer
implementation in your entity framework project.
public class DesignTimeServices : IDesignTimeServices
{
public void ConfigureDesignTimeServices(IServiceCollection services)
{
services.AddSingleton<IPluralizer, Pluralizer>();
}
}
Run (or rerun) your Scaffold-DbContext
command from the package manager console as usual. If you want it to overwrite the previously generated code, you need the -force
option.
Upvotes: 1