2017-01-03 3 views
8

Wir haben eine T4-Vorlage mit System.Data.Entity.Design.PluralizationServices, um Tabellennamen für einige Modellgenerierung zu behandeln.PluralisationServices ändern Status in Statu

Wenn wir eine Tabelle mit Status im Namen ausführen, z. B. CompanyStatus, gibt die Singularize-Methode CompanyStatu zurück. Ich habe unten einen Beispielcode.

Wie kann ich es bekommen CompanyStatus zu sehen, richtig?

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

Das gibt:

Katze
Katze
Den Status
CompanyStatu

ich auch versucht:

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

Vielleicht '((ICustomPluralizationMapping) pluralisationService) .AddWord (" companystatus "," companystatus ");' – Kevorkian

+0

Noch keine @Kevorkian. –

Antwort

0

Humanizer wird dies tun out-of-the-Box, wenn das eine Option?

// 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.

Verwandte Themen