dotnet core 2.0在搭建时多元化?

时间:2018-06-08 19:45:27

标签: entity-framework-core

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

1 个答案:

答案 0 :(得分:0)

  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选项。