私の SQL データベースには、キャメル ケースの列名があります。C# で Linq to SQL を使用しています。
プロパティの自動生成を強制的にパスカルケースにする方法はありますか?
キャメル ケースのプロパティは C# 標準に準拠していないため、クラスを再作成する必要があるたびに手動で行うのは面倒です。
私の SQL データベースには、キャメル ケースの列名があります。C# で Linq to SQL を使用しています。
プロパティの自動生成を強制的にパスカルケースにする方法はありますか?
キャメル ケースのプロパティは C# 標準に準拠していないため、クラスを再作成する必要があるたびに手動で行うのは面倒です。
データベースが非常に大きく、エンティティの名前を手動で変更するのに時間がかかる場合は、次のようにします。
CSharpDataClasses.ttとL2ST4.ttinclude.`CSharpDataClasses.ttに合わせて名前を変更します(例: )dbmlNorthwind.ttdmblファイル (例: ) を選択し、プロパティからNorthwind.dbml削除MSLinqToSQLGeneratorしCustom Toolます。L2ST4.ttincludeて変更しますNorthwind.ttファイルを選択して押しますCtrl+S(これにより、LINQ 2 SQL クラスの生成が実行されます)。L2ST4.ttinclude ファイルの変更:
(ファイルの上部にある)クラスの定義を見つけDataて、その前に次のコードを貼り付けます。
class Lazy
{
public static string FirstLetterToUpper(string str)
{
return Char.ToUpper(str[0]) + str.Substring(1);
}
}
次に、クラスの定義を見つけ、コンストラクターでプロパティの初期化を次のようTableに置き換えますMember
Member = Lazy.FirstLetterToUpper((String)xe.Attribute("Member"));
クラスを検索し、コンストラクターでプロパティの初期化を次のようClassに置き換えますName
Name = Lazy.FirstLetterToUpper((String) xe.Attribute("Name"));
そして最後に、クラスAssociationを見つけ、そのコンストラクタセットで
typeName = Lazy.FirstLetterToUpper((String) xe.Attribute("Type"));
PSあなたが本当に怠け者なら、私がすでに変更したこのL2ST4.ttincludeファイルを使用してください:)
T4 プロジェクトl2st4.codeplex.comの LINQ to SQL テンプレートをお勧めします。必要に応じてカスタマイズできます。