我们有一个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;
}
Run Code Online (Sandbox Code Playgroud)
返回:
Cat
Cat
Status
CompanyStatu
我也尝试过:
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;
}
Run Code Online (Sandbox Code Playgroud)
如果可以的话, Humanizer会开箱即用吗?
// Note that you have to set the "inputIsKnownToBePlural" flag to false,
// or it will behave the same as PluralizationServices.
Console.WriteLine("Statuses".Singularize(inputIsKnownToBePlural: false));
Console.WriteLine("Status".Singularize(inputIsKnownToBePlural: false));
Console.WriteLine("CompanyStatus".Singularize(inputIsKnownToBePlural: false));
Console.WriteLine("CompanyStatuses".Singularize(inputIsKnownToBePlural: false));
Run Code Online (Sandbox Code Playgroud)
文档。
| 归档时间: |
|
| 查看次数: |
372 次 |
| 最近记录: |