对于.NET平台上的代码生成器来说,codesmith是一个非常好的选择。
以前在学院实验室用的都是SQL server数据库,老师给的一套codesmith模板用来生成model/DAL/BLL很是方便。
不过后来放弃SQL server 投入MySQL之后,刚开始都是手写SQL,还是很痛苦的。
再后来又去找MySQL codesmith模板,这个对应的资料就不多了。不过最后还是找到了一套不错的,凑合能用。起初也懒,codesmith语法不熟,就没想过去修改一下了。
最近又要用到这套东西,于是决定还是去修改一番,更便于使用。
这个文章就主要讲一下修改过程,顺便说一下codesmith的简单语法。
先说一下操作步骤:
把模板的文件夹扔到codesmith模板文件的路径下,接着打开Codesmith,找到刚扔过去的文件夹,选择Main.cst,右键-execute-选择对应的MySQL库-选中表。
(注:codesmith连接MySQL有问题的话,
移步这里解决 CodeSmith 连接MySQL数据库报“can’t find .net framework data provider”
如下图:
然后点击Generate就能顺利生成model/dal/bll了。
生成代码结构如下:
这样操作没什么问题,顺利生成了我们要的model/dal/bll了,然后….我懒嘛。 每次都要把表一个个选一次,麻不麻烦啊。然后就想了,能不能改一下模板呢。于是便开始google相关资料了。找到了几个相关文章,参考这就开始改造了。 先看看原来的Main.cst里面写了撒。
<%@ CodeTemplate Language="C#" ResponseEncoding="UTF-8"
TargetLanguage="Text" Src="" Inherits="" Debug="False"
Description="Template description here."
Output="None"%>
<%@ Register Name="Models" Template="DBMad.Models.cst"
MergeProperties="False" ExcludeProperties="" %>
<%@ Register Name="DAL" Template="DBMad.DAL.cst"
MergeProperties="False" ExcludeProperties="" %>
<%@ Register Name="BLL" Template="DBMad.BLL.cst"
MergeProperties="False" ExcludeProperties="" %>
<%@ Property Name="SourceTable"
Type="SchemaExplorer.TableSchema" Optional="False"%>
<%@ Property Name="RootNamespace" Default="Net.Itcast.CN"
Type="System.String" Optional="False"%>
<%@ Assembly Name="SchemaExplorer" %>
<%@ Assembly Name="System.Data" %>