これは、CodeSmith の主なユース ケースの 1 つです。この TEMPLATE は VB で作成していますが、あらゆる種類のファイルの生成に使用できます。Codesmith は C# を使用できます。自由にこれを C# に変換してください。かなり単純な演習です。
最初の部分は、参照する必要があるいくつかのアセンブリを定義します。次に、インポートにより、テンプレートがそれらのアセンブリを参照できるようになります
プロパティ「SourceTable」は、魔法が起こる場所です。初めてテーブルをコンパイルするとき、F4 を押すと、テンプレートのプロパティ画面が表示されます。
SourceTable 行の右側にある省略記号「...」をクリックし、DB とテーブルをポイントします。新しい DataSource を定義する必要があります。これには、データベースへの接続文字列が必要です。
例は
Data Source=DEVMACHINE;Initial Catalog=MyDB;Persist Security Info=True;User ID=myUserId;Password=myPassword
これで始められます。DeclarationFromColumn ルーチンでは、SQL サーバー型から ac# 型を宣言します。
私にとってうまくいったのは、すでに持っている完全なワーキングクラスをテンプレートに貼り付け、すべてのフィールドを実行する場所を探し始めることです.
これらのインスタンスのそれぞれで、そのリストを生成するためのテンプレート コードを記述します。
すべての関数を<Script></Script>
タグに入れる必要があります。
<%@ Template Language="VB"%>
<%@ Assembly Name="SchemaExplorer" %>
<%@ Assembly Name="CodeSmith.BaseTemplates" %>
<%@ Assembly Name="System.Data" %>
<%@ Import Namespace="SchemaExplorer" %>
<%@ Import Namespace="System.Data" %>
<%@ Property Name="SourceTable" Type="SchemaExplorer.TableSchema" Category="Context" Description="Table to get the data from." %>
<% dim i as integer %>
public class RespObj
{
<% for i = 0 to SourceTable.Columns.Count - 1 step 1 %>
<%= DeclarationFromColumn(SourceTable.Columns(i)) %>
<% next %>
}
<script runat="template">
function DeclarationFromColumn(clm as ColumnSchema) as string
return "public " & clm.NativeType & " " & clm.Name & " {get; set;}"
end function
</Script>