1

過去に Oracle と Entity Framework をデータベース ファーストで使用したとき、エンティティ名とプロパティ名が従来の PascalCase を使用するようにモデルを手動で調整しました (デフォルトは大文字のスネーク ケース)。これまでにモデル化したスキーマはかなり小さいため、この手動編集は問題ありませんでした。

しかし、私は非常に大きなスキーマを使用してプロジェクトを開始する予定であり、何百ものテーブルのすべてを手動で調整することにすべての時間を費やすことは想像できません。また、デフォルトのアッパー スネーク ケーシングを使用することも考えられません。ほとんどの C# 開発者は、それが非常に不快であることに同意すると思います。

私は T4 の使用経験はありませんが、この種のことはそれほど難しくないようです。しかし、Google はパスカル ケーシング テンプレートを見つけるのを手伝ってくれなかったので、間違っているかもしれません。大文字と小文字の規則を変換する .t4 ファイルを共有できる人はいますか?

4

1 に答える 1

1

T4では、「クラス機能」を使用して、独自のカスタムヘルパー関数などを含めることができます。このようなもの:

<#+
public String ConvertToPascalCase(string allCaps){
   CultureInfo cultureInfo = CultureInfo.InvariantCulture;
   TextInfo textInfo = cultureInfo.TextInfo;

   return textInfo.ToTitleCase(allCaps.ToLower()).Replace("_", "");
}
#>

そして、そのヘルパー関数を使用して、EFでカスタムマッピングを作成します。

元の答え:

TextInfo.ToTitleCaseを使用してください!

//your current culture
//CultureInfo cultureInfo = Thread.CurrentThread.CurrentCulture;
//or invariant culture, made no difference for me...
CultureInfo cultureInfo = CultureInfo.InvariantCulture;
TextInfo textInfo = cultureInfo.TextInfo;

string allCaps = "THIS_IS_ORACLE";

var result = textInfo.ToTitleCase(allCaps.ToLower()).Replace("_", "");

result.Dump();//tried it in LINQPad, result: "ThisIsOracle"
于 2012-07-08T21:37:54.963 に答える