CodeSmith生成SQL Server视图的实体类脚本2012-01-04 博客园 kaiF第一个文件是businessobjctforView.cst,生成C#实体类,此脚本需要引用第二个文件CommonUtility.cs。需将两个文件放在同一目录中。
<%@ CodeTemplate Language="C#" TargetLanguage="T-SQL"
Description="Generates a update stored procedure." %>
<%@ Assembly Name="SchemaExplorer" %>
<%@ Import Namespace="SchemaExplorer" %>
<%@ Property Name="SourceTable" Type="SchemaExplorer.ViewSchema"
Category="Context"
Description="Table that the stored procedures should be based on." %>
<%@ Assembly Src="CommonUtility.cs" %>
<%@ Import Namespace="Common.Data" %>
<script runat="template">
CommonUtility rule=new CommonUtility();
</script>
using System;
using System.Collections;
using System.Collections.Generic;
using System.Data;
namespace SOA.Model
{
/// <summary>
/// <%= SourceTable.Name %> object for View table "<%= SourceTable.Name %>".
/// </summary>
[Serializable]
public class <%= SourceTable.Name %>
{
#region Private Member
<% for (int i = 0; i < SourceTable.Columns.Count; i++) { %>
private <%= rule.GetCSharpVariableType(SourceTable.Columns[i]) %> _<%= SourceTable.Columns[i].Name %>;
<% } %>
#endregion
#region Constructor
public <%= SourceTable.Name %>() {}
public <%= SourceTable.Name %>(
<% for (int i = 0; i < SourceTable.Columns.Count-1; i++) { %>
<%= rule.GetCSharpVariableType(SourceTable.Columns[i]) %> <%= SourceTable.Columns[i].Name %>,
<% } %>
<%= rule.GetCSharpVariableType(SourceTable.Columns[SourceTable.Columns.Count-1]) %> <%= SourceTable.Columns[SourceTable.Columns.Count-1].Name %>
)
{
<% for (int i = 0; i < SourceTable.Columns.Count; i++) { %>
_<%= SourceTable.Columns[i].Name %> = <%= SourceTable.Columns[i].Name %>;
<% } %>
}
#endregion
#region Public Properties
<% for (int i = 0; i < SourceTable.Columns.Count; i++) { %>
public <%= rule.GetCSharpVariableType(SourceTable.Columns[i]) %> <%= rule.GetCamelCaseName(SourceTable.Columns[i].Name) %>
{
get { return _<%= SourceTable.Columns[i].Name %>; }
set { _<%= SourceTable.Columns[i].Name %> = value; }
}
<% } %>
#endregion
}
}