zoukankan      html  css  js  c++  java
  • CodeSmith输出文件


    <%@ CodeTemplate Language="C#" TargetLanguage="C#" ResponseEncoding="UTF-8" Src="" Inherits="OutputFileCodeTemplate" Debug="False" Description="The following template will generate a default ASP.Net code behind." %>
    <%@ Property Name="SourceTable" Type="SchemaExplorer.TableSchema" Category="Context" Description="Table that the object is based on." %>
    <%@ Property Name="Namespace" Type="System.String" Category="Context" Default="WDBuyNET.Entity" Description="Namespace that class belongs to." %>
    <%@ Assembly Name="SchemaExplorer" %>
    <%@ Assembly Name="System.Data" %>
    <%@ Assembly Name="System.Net" %>
    <%@ Import Namespace="SchemaExplorer" %>
    <%@ Import Namespace="System.Data" %>
    <%@ Import Namespace="System.Net" %>

    <%@ Assembly Name="CodeSmith.BaseTemplates" %>
    <%@ Import Namespace="CodeSmith.BaseTemplates" %>
    <%@ Assembly Name="CodeSmith.CustomProperties" %>
    <%@ Import Namespace="CodeSmith.CustomProperties" %>
    <%
    this.OutputFile = "D:\\work\\0802\\temp\\"+SourceTable.Name+".cs";
    %>
    //------------------------------------------------------------------------------
    // <autogenerated>
    // This code was generated by CodeSmith Template.
    //
    // Creater: 作者
    // Date: <%= DateTime.Now.ToShortDateString() %>
    // Time: <%= DateTime.Now.ToShortTimeString() %>
    // Version: 4.0.0.0
    //
    // Changes to this file may cause incorrect behavior and will be lost if
    // the code is regenerated.
    // </autogenerated>
    //------------------------------------------------------------------------------

    using System;
    using System.Collections.Generic;
    using WDBuyNET.DMSFrame.DMSLinq;
    using WDBuyNET.DMSFrame.DMSLinq.Attributes;
    /// <summary>
    ///
    /// </summary>
    namespace <%= Namespace.Trim()==""?"WDBuyNET.Entity.DBEntity":Namespace %>
    {
    /// <summary>
    /// Modal class: <%= GetClassName(SourceTable) %>.
    /// </summary>
    [Serializable]
    [TableMapping(Name = "<%= GetClassName(SourceTable) %>", PrimaryKey = "<%= GetPrimaryKeyName(SourceTable) %>",DefaultOrderBy=" <%= GetPrimaryKeyName(SourceTable) %> Desc")]
    public class <%= GetClassName(SourceTable) %> : BaseEntity
    {

    #region Private Properties

    <% foreach (ColumnSchema column in SourceTable.Columns) { %>
    <%= GetMemberVariableDeclarationStatement(column) %>//<%= column.ExtendedProperties["CS_Description"].Value.ToString().Replace("\r\n", ";").Replace("\n", ";") %>
    <% } %>

    #endregion

    #region Public Properties

    <% for (int i = 0; i < SourceTable.PrimaryKey.MemberColumns.Count; i++) { %>
    <% ColumnSchema column = SourceTable.PrimaryKey.MemberColumns[i]; %>
    /// <summary>
    /// <%= column.ExtendedProperties["CS_Description"].Value.ToString().Replace("\r\n", ";").Replace("\n", ";") %>.
    /// </summary>
    [ColumnMapping(Name = "<%= GetPropertyName(column) %>"<% if ((bool)column.ExtendedProperties["CS_IsIdentity"].Value) { %>,AutoIncrement = true<% } %>)]
    public <%= GetCSharpVariableType(column) == "string" ? GetCSharpVariableType(column) : GetCSharpVariableType(column) + "?" %> <%= GetPropertyName(column) %>
    {
    get
    {
    return <%= GetMemberVariableName(column) %>;
    }
    set
    {
    object _oldvalue = <%= GetMemberVariableName(column) %>;
    <% if (column.SystemType == typeof(string) && column.NativeType != "text") { %>
    <% if (column.Size>0) { %>
    <%= GetMemberVariableName(column) %> = value.SubStr(<%=column.Size %>);
    <% } else { %>
    <%= GetMemberVariableName(column) %> = value;
    <% } %>
    <% } else { %>
    <%= GetMemberVariableName(column) %> = value;
    <% } %>

    if ((value == null) || (!value.Equals(_oldvalue)))
    {
    this.OnPropertyChanged("<%= GetPropertyName(column) %>", _oldvalue, <%= GetMemberVariableName(column) %>);
    <% if (!(bool)column.ExtendedProperties["CS_IsIdentity"].Value) { %>
    this.OnMappingPropertyChanged("<%= GetPropertyName(column) %>", _oldvalue, <%= GetMemberVariableName(column) %>);
    <% } %>

    }
    }
    }
    <% }%>

    <% for (int i = 0; i < SourceTable.NonPrimaryKeyColumns.Count; i++) { %>
    <% ColumnSchema column = SourceTable.NonPrimaryKeyColumns[i]; %>
    /// <summary>
    /// <%= column.ExtendedProperties["CS_Description"].Value.ToString().Replace("\r\n", ";").Replace("\n", ";") %>.
    /// </summary>
    [ColumnMapping(Name = "<%= GetPropertyName(column) %>"<% if ((bool)column.ExtendedProperties["CS_IsIdentity"].Value) { %>,AutoIncrement = true<% } %>)]
    <% if (column.IsForeignKeyMember) { %>
    public <%= GetClassName(GetForeignKeyTable(column)) %> <%= GetClassName(GetForeignKeyTable(column)) %>
    {
    get
    {
    return _<%= GetCamelCaseName(GetClassName(GetForeignKeyTable(column))) %>;
    }
    set
    {
    _<%= GetCamelCaseName(GetClassName(GetForeignKeyTable(column))) %> = value;
    }
    }
    <% } else { %>
    <% string strColLength = GetColLengthString(column); %>
    public <%= GetCSharpVariableType(column) == "string" ? GetCSharpVariableType(column) : GetCSharpVariableType(column) + "?" %> <%= GetPropertyName(column) %>
    {
    get
    {
    return <%= GetMemberVariableName(column) %>;
    }
    set
    {
    object _oldvalue = <%= GetMemberVariableName(column) %>;
    <% if (column.SystemType == typeof(string) && column.NativeType != "text") { %>
    <% if (column.Size>0) { %>
    <% if (column.Name.ToLower().IndexOf("imgname")>=0 || column.Name.ToLower().IndexOf("logo")>=0 || column.Name.ToLower().IndexOf("productimg")>=0 || column.Name.ToLower().IndexOf("image")>= 0) { %>
    <%= GetMemberVariableName(column) %> = value;
    <% }else { %>
    <%= GetMemberVariableName(column) %> = value.SubStr(<%=column.Size %>);
    <% }} else { %>
    <%= GetMemberVariableName(column) %> = value;
    <% } %>
    <% } else { %>
    <%= GetMemberVariableName(column) %> = value;
    <% } %>

    if ((value == null) || (!value.Equals(_oldvalue)))
    {
    this.OnPropertyChanged("<%= GetPropertyName(column) %>", _oldvalue, <%= GetMemberVariableName(column) %>);
    <% if (!(bool)column.ExtendedProperties["CS_IsIdentity"].Value) { %>
    this.OnMappingPropertyChanged("<%= GetPropertyName(column) %>", _oldvalue, <%= GetMemberVariableName(column) %>);
    <% } %>
    }
    }
    }
    <% } %>
    <% if (i < SourceTable.NonPrimaryKeyColumns.Count - 1) Response.Write("\r\n"); %>
    <% } %>

    #endregion
    }
    }


    <script runat="template">

    <!-- #include file="WDBuyNETGen.inc" -->

    [FileDialog(FileDialogType.Save, Title="选择文件输出目录", Filter="Query Files (*.cs)|*.cs|All Files (*.*)|*.*", DefaultExtension=".cs")]
    public override string OutputFile
    {
    get {return base.OutputFile;}
    set {base.OutputFile = value;}
    }

    private string GetColLengthString(ColumnSchema column)
    {
    string strRet = "";
    if (column.DataType == DbType.AnsiString || column.DataType == DbType.AnsiStringFixedLength ||
    column.DataType == DbType.String || column.DataType == DbType.StringFixedLength ||
    column.DataType == DbType.Binary)
    {
    strRet += ", Length=" + column.Size.ToString();
    }
    return strRet;
    }

    </script>

    CodeSmith模板下载:http://www.cnblogs.com/hongjiumu/CodeTools(CodeSmith工具包).rar

  • 相关阅读:
    VSCode C++ 主题
    Linux 软连接应用
    Python 调用 C 动态库
    Qt 打包程序
    Qt 样式修改
    libusb 批传输的使用方法
    Qt 数据库操作
    Qt 调用第三方库
    CS 调用 C 动态库
    Qt 串口操作
  • 原文地址:https://www.cnblogs.com/hongjiumu/p/2620530.html
Copyright © 2011-2022 走看看