模板如下:
<%@ Template Language="C#" TargetLanguage="C#" %><%@ Assembly Name="SchemaExplorer" %><%@ Import Namespace="SchemaExplorer" %><%@ Property Name="SourceTable" Type="SchemaExplorer.TableSchema" %><%@ Property Name="ModelNameSpace" Type="System.String" Default="Model"%><%@ Property Name="IDALlNameSpace" Type="System.String" Default="IDAL"%>using System;using System.Collections.Generic;using System.Linq;using System.Text;using <%=ModelNameSpace%>;namespace <%=IDALlNameSpace %>{ public interface I<%=GetClassName() %>rService { DBHelper db = new DBHelper(); int Add<%=this.GetClassName()%>(<%=this.GetClassName()%> <%=this.ToCamel(this.GetClassName())%>); int Update<%=this.GetClassName()%>(<%=this.GetClassName()%> <%=this.ToCamel(this.GetClassName())%>); <%foreach(TableKeySchema key in this.SourceTable.ForeignKeys) {%> int Delete<%=this.GetClassName()%>By<%=GetFKBySuffix(key)%>(<%=GetFKMethodParameters(key)%>); <%} %> <%foreach(IndexSchema index in this.SourceTable.Indexes){ %> <%=this.GetClassName()%> Get<%=this.GetClassName()%>By<%=GetUniqueIndexBySuffix(index)%>(<%=GetUniqueIndexMethodParameters(index)%>); <%} %> <%foreach(TableKeySchema key in this.SourceTable.ForeignKeys) {%> List<<%=this.GetClassName()%>> Get<%=this.GetClassName()%>By<%=GetFKBySuffix(key)%>(<%=GetFKMethodParameters(key)%>); <%} %> List<<%=this.GetClassName()%>> Get<%=this.GetClassName()%>s(); }}
这是生成一张表的数据访问层。
下面是为一个数据库批量生成的模板:
<%@ Template Language="C#" TargetLanguage="C#" %><%@ Assembly Name="SchemaExplorer" %><%@ Import Namespace="SchemaExplorer" %><%@ Property Name="SourceDB" Type="SchemaExplorer.DatabaseSchema" %><%@ Register Name="IDALTempateClass" Template="IDAL.cst" %><%foreach (TableSchema table in this.SourceDB.Tables) { IDALTempateClass itc=new IDALTempateClass(); itc.SourceTable=table; itc.RenderToFile("f:\\模板类IDAL\\"+itc.GetFileName(),true); }%>
在为一个数据库批量生成时,一般都是一模一样的套路。
Ajax的姑娘,加油!