您的位置:首页 > 其它

CodeSmith简单示例

2019-04-10 11:56 10 查看

① 实体类

<%--
Name:Table Enum
Author: ZLH
Description:Create an enum of table
--%>
<%-- 引入模板--%>
<%@ CodeTemplate Language="C#" TargetLanguage="Java" Debug="False" Description="CreateAnEnumOfTable" %>
<%--声明数据库的参数,在左下角的Database属性中,选择要操作的数据库名称--%>
<%@ Property Category="Database" Name="Table" Type="SchemaExplorer.TableSchema" Optional="False" Description="Database the talble enums will come from." %>
<%-- 操作数据库 --%>
<%@ Assembly Name="SchemaExplorer" %>
<%@ Import Namespace="SchemaExplorer" %>
<%--SourceDatabase, 是你选择数据库的属性类,涵盖数据库的名称,创建时间,字符串链接,描述等等,自己可以点点看 --%>
@Data
public class <%=Table %>{
<%
for(int i=0;i<Table.Columns.Count;i++){
Response.WriteLine("\tprivate {0} {1};",FieldType(Table.Columns[i].DataType),Table.Columns[i].Name);
}
%>
}
<%-- 字段类型转换 --%>
<script runat="template">
public string FieldType(System.Data.DbType dbType){
switch (dbType){
case DbType.AnsiString:
return "String";
case DbType.AnsiStringFixedLength:
return "String";
case DbType.Binary:
return "Integer[]";
case DbType.Boolean:
return "Boolean";
case DbType.Byte:
return "Integer";
case DbType.Currency:
return "Double";
case DbType.Date:
return "Date";
case DbType.DateTime:
return "Date";
case DbType.DateTime2:
return "Date";
case DbType.DateTimeOffset:
return "Date";
case DbType.Decimal:
return "Double";
case DbType.Double:
return "Double";
case DbType.Guid:
return "Guid";
case DbType.Int16:
return "Integer";
case DbType.Int32:
return "Integer";
case DbType.Int64:
return "Integer";
case DbType.Object:
return "Object";
case DbType.SByte:
return "Integer";
case DbType.Single:
return "Double";
case DbType.String:
return "String";
case DbType.StringFixedLength:
return "String";
case DbType.Time:
return "Date";
case DbType.UInt16:
return "Integer";
case DbType.UInt32:
return "Integer";
case DbType.UInt64:
return "Integer";
case DbType.VarNumeric:
return "Double";
case DbType.Xml:
return "String";
default:
return "Object";
}
}
</script>

② insert语句

<%--
CodeSmith: Templates
Author: ZLH
--%>
<%@ CodeTemplate Language="C#" TargetLanguage="JAVA" Description="Template description here." %>
<%@ Property Name="Columns" Type="SchemaExplorer.ColumnSchemaCollection" Default="" Optional="True" Category="Strings" Description="--表--" %>
<%@ Assembly Name="SchemaExplorer" %>
<%@ Assembly Name="System.Design" %>
<%@ Import Namespace="SchemaExplorer" %>
<%
Response.Write("insert into {0}(",Columns[0].Table);
for(int i=0;i<Columns.Count;i++){
Response.Write(Columns[i].Name);
if(i<Columns.Count-1){
Response.Write(",");
}
}
Response.Write(")\nvalues(");
for(int i=0;i<Columns.Count;i++){
Response.Write("{0}{1}{2}","#{",Columns[i].Name,"}");
if(i<Columns.Count-1){
Response.Write(",");
}
}
Response.Write(")");
%>

③ update语句

<%--
CodeSmith: Templates
Author: ZLH
--%>
<%@ CodeTemplate Language="C#" TargetLanguage="JAVA" Description="Template description here." %>
<%@ Property Name="Columns" Type="SchemaExplorer.ColumnSchemaCollection" Default="" Optional="True" Category="Strings" Description="--表--" %>
<%@ Assembly Name="SchemaExplorer" %>
<%@ Assembly Name="System.Design" %>
<%@ Import Namespace="SchemaExplorer" %>
<%
Response.Write("update {0} set ",Columns[0].Table);
for(int i=0;i<Columns.Count;i++){
Response.Write("{0}={1}{2}{3}",Columns[i].Name,"#{",Columns[i].Name,"}");
if(i<Columns.Count-1){
Response.Write(",");
}
}
Response.Write(" where {0}={1}{2}{3}",Columns[0].Table.Columns[0].Name,"#{",Columns[0].Table.Columns[0].Name,"}");

%>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: