2017-01-03 7 views
8

System.Data.Entity.Design.PluralizationServicesを使用してT4テンプレートを作成して、モデル生成のテーブル名を処理しています。PluralizationServicesがStatuにステータスを変更する

CompanyStatusのようにStatusという名前のテーブルを実行すると、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; 
} 

これが返されます。



ステータス
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; 
} 
+0

多分 '((ICustomPluralizationMapping)pluralizationService).AddWord(" companystatus "、" companystatus ");' – Kevorkian

+0

まだ@Kevorkianはありません。 –

答えて

0

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)); 

Documentation

関連する問題