【发布时间】:2017-05-17 20:16:47
【问题描述】:
我们有一个 T4 模板,使用 System.Data.Entity.Design.PluralizationServices 来处理用于某些模型生成的表名。
当我们运行名称中带有Status 的表时,例如CompanyStatus,Singularize 方法返回CompanyStatu。我在下面有一些示例代码。
如何让它正确查看 CompanyStatus?
void Main()
{
// Sanity checks
Console.WriteLine(Singularize("Cats"));
Console.WriteLine(Singularize("Cat"));
Console.WriteLine(Singularize("Status"));
// The real issue
Console.WriteLine(Singularize("CompanyStatus"));
}
static string Singularize(string word)
{
var singularword = System.Data.Entity.Design.PluralizationServices.PluralizationService.CreateService(System.Globalization.CultureInfo.GetCultureInfo("en-us")).Singularize(word);
return singularword;
}
这会返回:
猫
猫
状态
公司状态
我也试过了:
static string Singularize(string word)
{
var pluralizationService = System.Data.Entity.Design.PluralizationServices.PluralizationService.CreateService(System.Globalization.CultureInfo.GetCultureInfo("en-us"));
((ICustomPluralizationMapping)pluralizationService).AddWord("companystatus", "companystatuses");
var singularword = pluralizationService.Singularize(word);
return singularword;
}
【问题讨论】:
-
也许
((ICustomPluralizationMapping)pluralizationService).AddWord("companystatus", "companystatus"); -
仍然没有@Kevorkian。