1

私の SQL データベースには、キャメル ケースの列名があります。C# で Linq to SQL を使用しています。

プロパティの自動生成を強制的にパスカルケースにする方法はありますか?

キャメル ケースのプロパティは C# 標準に準拠していないため、クラスを再作成する必要があるたびに手動で行うのは面倒です。

4

2 に答える 2

1

データベースが非常に大きく、エンティティの名前を手動で変更するのに時間がかかる場合は、次のようにします。

  • T4 用の LINQ to SQL テンプレートをダウンロードし、プロジェクトCSharpDataClasses.ttL2ST4.ttinclude.
  • ファイル名`CSharpDataClasses.ttに合わせて名前を変更します(例: )dbmlNorthwind.tt
  • dmblファイル (例: ) を選択し、プロパティからNorthwind.dbml削除MSLinqToSQLGeneratorCustom 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ファイルを使用してください:)

于 2012-11-14T23:12:40.333 に答える
0

T4 プロジェクトl2st4.codeplex.comの LINQ to SQL テンプレートをお勧めします。必要に応じてカスタマイズできます。

于 2012-11-14T22:50:21.107 に答える