T4テンプレートにプロパティを追加 - サーバ、データベース、テーブルをピッキング

StackOverflow https://stackoverflow.com/questions/538988

  •  22-08-2019
  •  | 
  •  

質問

皆さん、

私は社内のORMをサポートするために、データベースからクラスファイル(テーブルあたり約7)を生成するためのいくつかのT4テンプレートを作成したいのですが(聞いていない - 長い物語と歴史的な理由を.....)

私が本当にやってみたいことは、視覚的にファイル(CodeSmithのテーブルピッカーのようなもの)を作成するためにサーバー、データベースとテーブルを選択する私のメインTTテンプレートのプロパティを持っている。

それが存在するように見える(またはそれをしない?)しないので、私は最高のものは、サーバ、データベース、テーブル名のために3つの文字列プロパティを使用して、そのテーブルに接続して、列データIを取得するためにSMOを使用している次の考え出し必要があります。

私はオレグSychの例に従うことを試みた、と思い付います:

<#@ property name="serverName" processor="PropertyProcessor" type="System.String" #>
<#@ property name="databaseName" processor="PropertyProcessor" type="System.String" #>
<#@ property name="tableName" processor="PropertyProcessor" type="System.String" #>

が、その後どのように私は、データを取得するために、SMOを使用して、指定されたサーバーに接続し、私のコードブロックでこれらのプロパティを参照していますか?

<#
    Server server = new Server();
    Database database = new Database(server, "DASECO_DEV");
    Table table = new Table(database, "T_User");
    table.Refresh();
#>
...... I場合の特性を持っていることのポイントは何だが、それは、私は少しここにこだわってるよう:-(は思え動作しません -

私は、サーバー()コンストラクタの括弧の中<#= serverName #>を入れてみました評価し、その値を使用することはできません: - !)

任意の受験者??

マルク

役に立ちましたか?

解決

これはどう?

<#    
    Server server = new Server(serverName);    
    Database database = new Database(server, databaseName);    
    Table table = new Table(database, tableName);    
    table.Refresh();
#>
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top