私の SQL データベースには、キャメル ケースの列名があります。C# で Linq to SQL を使用しています。
プロパティの自動生成を強制的にパスカルケースにする方法はありますか?
キャメル ケースのプロパティは C# 標準に準拠していないため、クラスを再作成する必要があるたびに手動で行うのは面倒です。
私の SQL データベースには、キャメル ケースの列名があります。C# で Linq to SQL を使用しています。
プロパティの自動生成を強制的にパスカルケースにする方法はありますか?
キャメル ケースのプロパティは C# 標準に準拠していないため、クラスを再作成する必要があるたびに手動で行うのは面倒です。
データベースが非常に大きく、エンティティの名前を手動で変更するのに時間がかかる場合は、次のようにします。
CSharpDataClasses.tt
とL2ST4.ttinclude
.`CSharpDataClasses.tt
に合わせて名前を変更します(例: )dbml
Northwind.tt
dmbl
ファイル (例: ) を選択し、プロパティから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 テンプレートをお勧めします。必要に応じてカスタマイズできます。