ef 코어 2와 함께 .net 코어 2.x 클래스 라이브러리 설정 2. db 스키마에서 엔티티에 대한 스캐 폴딩을 생성했습니다. 그러나 엔티티 이름을 복수화 할 수있는 옵션이 있는지 여부를 확인하는 것을 잊어 버렸습니다. EF 6.1을 사용하는 클래스 라이브러리에서 하나의 메서드를 가져 왔을 때 엔티티가 복수화되었을 때이 사실을 알게되었습니다. 이를위한 옵션이 있으며 단순히 복수 항목으로 내 개체를 재생성합니까?
Microsoft.EntityFrameworkCore.Design.IPluralizer
인터페이스를 구현하는 클래스를 작성합니다. 직접 작성하거나 Inflector
와 같은 NuGet 패키지를 사용할 수 있습니다.
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;
}
}
엔티티 프레임 워크 프로젝트에서 IPluralizer
구현을 등록하려면 Microsoft.EntityFrameworkCore.Design.IDesignTimeServices
인터페이스를 구현하는 클래스를 작성하십시오.
public class DesignTimeServices : IDesignTimeServices
{
public void ConfigureDesignTimeServices(IServiceCollection services)
{
services.AddSingleton<IPluralizer, Pluralizer>();
}
}
평소대로 패키지 관리자 콘솔에서 Scaffold-DbContext
명령을 실행 (또는 재실행)하십시오. 이전에 생성 된 코드를 덮어 -force
려면 -force
옵션이 필요합니다.