【问题标题】:dotnet core 2.0 pluralize when scaffolding?dotnet core 2.0 在脚手架时复数?
【发布时间】:2018-06-08 19:45:27
【问题描述】:

使用 ef core 2 设置我的 .net core 2.x 类库。已从我的 db 架构生成实体的脚手架。但是,我什至忘记检查是否有复数实体名称的选项。当我从使用 EF 6.1 的类库中提取一个我的方法并且实体是复数形式时,我注意到了这一点。有没有一个选项可以简单地将我的实体重新生成为复数形式?

【问题讨论】:

标签: entity-framework-core


【解决方案1】:
  1. 编写一个实现Microsoft.EntityFrameworkCore.Design.IPluralizer 接口的类。您可以自己编写,也可以使用 NuGet 包,例如 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;
        }
    }
    
  2. 编写一个实现Microsoft.EntityFrameworkCore.Design.IDesignTimeServices 接口的类,以便在您的实体框架项目中注册您的IPluralizer 实现。

    public class DesignTimeServices : IDesignTimeServices
    {
        public void ConfigureDesignTimeServices(IServiceCollection services)
        {
            services.AddSingleton<IPluralizer, Pluralizer>();
        }
    }
    
  3. 像往常一样从包管理器控制台运行(或重新运行)Scaffold-DbContext 命令。如果希望它覆盖之前生成的代码,则需要-force 选项。

【讨论】:

    猜你喜欢
    • 2017-03-13
    • 1970-01-01
    • 1970-01-01
    • 2018-02-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-11-07
    • 2017-10-27
    相关资源
    最近更新 更多