2

検索しましたが、この質問に対する答えを見つけることができませんでした。現在、テーブルのDbユーザープレフィックス(例:tblUsers)。EFテンプレートを更新して、生成されたクラス名から「tbl」を削除しました。ただし、出力ファイル名を変更して一致させる方法がわかりません。

それは可能ですか、それとも私は月を求めていますか?私はVS2012でEFPowerTools Beta3を使用しています。どんな助けでも大歓迎です!

4

1 に答える 1

3

Patrick さん、必要なのは EF Power Tools で使用される T4 テンプレートを変更することです。すべてのマッピングでコード ファーストを作成する場合は、Reverse Engineer Code Firstオプションの代わりに を選択しますCustomize Reverse Engineer Template。次の 3 つのファイルを取得する必要があります。

  1. Context.tt
  2. Entity.tt
  3. Mapping.tt

たとえば、Mapping.tt には、TableSet から MetadataProperties を読み取り、テーブル名を抽出する行があります。行は次のようになります。

var tableSet = efHost.TableSet;
var tableName = (string)tableSet.MetadataProperties["Table"].Value ?? tableSet.Name;

これは、変更を加えて次のようなことを行う必要がある場所です。

var newTableName = tableName.Replace("tbl", String.Empty);

もちろん、別の戦略を選択し、Substringメソッドまたは正規表現を使用して最初の 3 文字を読み取って削除する必要があります。その後、tttableNameファイルを調べて、使用する場所とユーザーnewTableName変数の場所でロジックを使用する必要があります。データベース内のテーブルでマッピングが行われる tableName と、POCO クラスとファイル名にその名前を使用する newTableName を保持します。

他の 2 つのファイルについて、このプロセスを繰り返します。詳細については、Rowan Miller のブログ記事をご覧ください。これにより、どのように進めるかについてかなり良いアイデアが得られるはずです。

于 2013-03-12T09:57:42.460 に答える