c# - 有谁知道 EF Core 3.0 中的 IPluralizer、ICandidateNamingService 和 CandidateNamingService 发生了什么?

标签 c# asp.net-core .net-core entity-framework-core

我刚刚更新到 Entity Framework Core 3.0,以下代码不再编译。看起来像 IPluralizer、ICandidateNamingService 和 CandidateNamingService 不再存在。

有谁知道通过 Add-Migration InitialCreate 自定义实体生成的新推荐方法是什么?

public class CustomDesignTimeServices : IDesignTimeServices
{
    public void ConfigureDesignTimeServices(IServiceCollection services)
    {
        services.AddSingleton<ICandidateNamingService, CustomCandidateNamingService>();
       services.AddSingleton<IPluralizer, CustomPluralizer>();
    }
}

public class CustomPluralizer : IPluralizer
{
    public string Pluralize(string name)
    {
        return Inflector.Inflector.Pluralize(name) ?? name;
    }
    public string Singularize(string name)
    {
        return Inflector.Inflector.Singularize(name) ?? name;
    }
}

public class CustomCandidateNamingService : CandidateNamingService
{
    public override string GetDependentEndCandidateNavigationPropertyName(IForeignKey foreignKey)
    {
        if (foreignKey.PrincipalKey.IsPrimaryKey())
            return foreignKey.PrincipalEntityType.ShortName();

        return base.GetDependentEndCandidateNavigationPropertyName(foreignKey);
    }
}

最佳答案

我让 IPluralizer 引用在 .NET 6 中再次工作

<PackageReference Include="Microsoft.EntityFrameworkCore.Design" Version="3.1.9">
  <PrivateAssets>all</PrivateAssets>
  <!-- Remove IncludeAssets to allow compiling against the assembly -->
  <!--<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>-->
</PackageReference>

参见https://learn.microsoft.com/en-us/ef/core/cli/services

关于c# - 有谁知道 EF Core 3.0 中的 IPluralizer、ICandidateNamingService 和 CandidateNamingService 发生了什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58924138/

相关文章:

c# - .NET Core 3.1 基于角色的 JWT 授权返回 403 禁止

nuget - Visual Studio 代码和私有(private) nuget

c# - 是否可以超时调用 HttpListener.GetContext?

c# - 如何修改另一个窗口的背景颜色?

asp.net-core - 在 ASP.NET Core 2.1 Web API 中实现分页

asp.net-core - 如何将 MiniProfiler 4 记录到 Serilog(或在中间件内访问)?

c# - 'GET OR SET ACCESSOR EXPECTED' 是什么意思?

c# - 如何使用表中的嵌套类和列表?

c# - TestContext.DataRow ["MyColumnName"的替代品是什么]

.net-core - 无法使用 DI 内部函数与 .net core Azure Web 作业中的 ServiceBusTrigger 参数绑定(bind)服务实现