图解CodeSmith使用和实用教程一 - 入门和生成MIS项目实体层代码
CodeSmith,也就是传说中的那个代码生成工具。
下载CodeSmith 6.5,可到我网盘下,链接在底部。
一 安装
1 解压,点击安装;
2 协议;
3 选择目录;
4 一路next完成。
5 解压Crack目录下的内容;
6 执行上一步解开的东西的安装,必须不要打开CodeSmith,VS20XX; 安装后看下开始菜单;如下图;已经装好;
二 用CodeSmith生成MIS项目的实体层代码
实体层代码,就是对数据库表的映射部分的代码,如果表多一些的话,手写是个相当大的工作量;
1 进入CodeSmith,先测试下;在右侧选择一个自带示例模板,内容如下图;
2 点击 Run;生成该CST模板的生成的代码如下图;
3 写生成项目实体层的模板代码
test.cst:
<%@ CodeTemplate Inherits="CodeTemplate" Language="C#" TargetLanguage="Text" Description="NetTiers main template." Debug="True" ResponseEncoding="UTF-8"%><%-- 注册实体层Entity模板 --%> <%@ Register Name="EntityTemplate" Template="D:\WinformTier\Entity.cst" MergeProperties="Flase" ExcludeProperties=""%><%-- 数据库 --%> <%@ Property Name="SourceDatabase" Type="SchemaExplorer.DatabaseSchema" DeepLoad="True" Optional="False" Category="01. Getting Started - Required" Description="Database that the tables views, and stored procedures should be based on. IMPORTANT!!! If SourceTables and SourceViews are left blank, the Entire Database will then be generated."%><% //创建实体层Entity类 this.GenerateEntityClasses();Debug.WriteLine("OK"); %><script runat="template">//生成实体Entity类 private void GenerateEntityClasses(){CodeTemplate Template =new EntityTemplate();foreach(TableSchema table in this.SourceDatabase.Tables){string FileDirectory = OutputDirectory +"\\"+ table.Name +".cs";//生成模板Template.SetProperty("Table",table);//文件输出Template.RenderToFile(FileDirectory,true);Debug.WriteLine(FileDirectory +" 创建成功.");}} </script><script runat="template">//解决方案输出路径 private string Directory = String.Empty;[Editor(typeof(System.Windows.Forms.Design.FolderNameEditor), typeof(System.Drawing.Design.UITypeEditor))] [Optional, NotChecked][DefaultValue("")]public string OutputDirectory { get{return Directory;}set{if (value.EndsWith("\\")) value = value.Substring(0, value.Length -1);Directory = value;} } </script>
Entity.cst
<%@ CodeTemplate Inherits="CodeTemplate" Language="C#" TargetLanguage="Text" Description="NetTiers main template." Debug="True" ResponseEncoding="UTF-8"%><%@ Assembly Name="SchemaExplorer"%> <%@ Import Namespace="SchemaExplorer"%><%@ Property Name="Table" Type="TableSchema" DeepLoad="True" Optional="False" Category="01. Getting Started - Required" Description="Database that the tables views, and stored procedures should be based on. IMPORTANT!!! If SourceTables and SourceViews are left blank, the Entire Database will then be generated."%> using System; using System.Collections.Generic; using System.Linq; using System.Text;namespace Entity { publicpartialclass<%= Table.Name%> { <%foreach(ColumnSchema col in Table.Columns){ %> public <%= col.DataType %> <%= col.Name %> { get;set; } <% } %> } }
上述代码中的“D:\WinformTier\Entity.cst”,可改为自己保存cst的路径;
另外还要添加数据库连接;添加了之后CodeSmith会自动读出数据库中的表的名字和字段名,然后生成代码;
添加数据源如下图,跟VS中类似,此处选择的是SqlSever架构提供者,如果使用别的数据库略有不同;
在右侧属性面板选中添加的数据源和选择输出目录;
然后点击Run,Build成功;看下输出目录;一堆的实体层代码文件已经生成;真的是好多好强大啊;打开一个看一下,没什么问题,如下图所示。看来资本主义确实有值得我们学习的地方,
codesmith 6.5; 上述模板代码;Sql Server示例数据库AdventureWorks_Data.mdf;可到俺网盘下载;
codesmith下载:
http://pan.baidu.com/s/1o63dEHW
示例数据库:
http://pan.baidu.com/s/1sjynMGX
模板代码:
http://pan.baidu.com/s/1o6n4Byy
图解CodeSmith使用和实用教程一 - 入门和生成MIS项目实体层代码相关推荐
- linux 系统网络服务器组建,配置和管理实训教程 pdf,Linux网络服务器配置管理项目实训教程2...
Linux网络服务器配置管理项目实训教程2 附录2 Linux常用命令 在文本模式和终端模式下,经常使用Linux命令来查看系统的状态和监视系统的操作,如对文件和目录进行浏览.操作等.在Linux较早 ...
- 工业机器人入门实用教程_机器学习实用入门
工业机器人入门实用教程 Following on from my earlier post on Data Science, here I will try to summarize and comp ...
- 视频教程-Oracle数据库从入门到实用教程详解-Oracle
Oracle数据库从入门到实用教程详解 全栈工程师,2010年从事软件开发以及软件教育培训工作,至今将近十余年,在项目的开发,设计,到管理上积累了丰富的实战经验,教学风格上通俗易懂,问题解答环节一对一 ...
- esp8266初级入门实用教程一之访问心知天气读取实时天气数据
ESP8266作为一款功能强大的的物联网模块,已经被应用到了很多实用的物联网项目中.作为一个菜鸟,本人也捣鼓这个东西很长时间了,在捣鼓这个东西的同时我也总结了一些使用经验.在此借助CSDN平台出几个教 ...
- “音游制作实用插件-Koreographer入门教程”,“Unity2D 音游案例-节奏大师(基于Koreographer)”
看着目录来阅读 第一个是免费视频 音游制作实用插件-Koreographer入门教程) 第二个是siki学院的收费视频 Unity2D 音游案例-节奏大师(基于Koreographer) Demo 音 ...
- pr剪辑打开多个项目_pr入门实用教程之——mp4格式导出
哈喽大家好,我是小朋.下面我们继续给大家分享一些关于剪辑软件premiere的实用教程. 刚接触到pr这个软件的小伙伴们肯定会发现我们在做完一系列视频剪辑后,保存文件导出文件时,可能会遇到想把视频保存 ...
- python基础教程博客_Python基础教程_Python入门知识
Python基础教程频道为编程初学者提供入门前的所有基础知识,必须要掌握的一些PYTHON基础语法语句,基本的数据类型. 让大家可以更快速.更容易理解的的方式掌握Python编程所需要的基础知识,灵活 ...
- PyTorch 模型训练实用教程(附代码)
向AI转型的程序员都关注了这个号???????????? 机器学习AI算法工程 公众号:datayx PyTorch 能在短时间内被众多研究人员和工程师接受并推崇是因为其有着诸多优点,如采用 Py ...
- Android Studio教程从入门到精通
最新2.0系列文章参考: Android Studio2.0 教程从入门到精通Windows版 - 安装篇 Android Studio2.0 教程从入门到精通Windows版 - 入门篇 Andro ...
最新文章
- linux系统用户属组,关于 Linux系统用户、组和权限管理
- opencv可以在linux上运行,linux上 安装并 运行opencv
- 三峡大学陈迪马:土壤微食物网对全球变化的响应与反馈
- 愿能与诸位关心的人及时保持互联
- 2018-1-8 Linux学习笔记
- Mysql学习(三)之数据库管理工具Navicat
- shell如果文件夹不存在则创建
- MapReduce的工作原理,详细解释WordCount程序
- :传递给 left 或 substring 函数的长度参数无效。_Java函数式编码结构-好程序员
- 《四世同堂》金句摘抄(二)
- pca降维的基本思想_R语言进行PCA分析
- php 文章浏览量 缓存,WordPress缓存文章浏览量访问不自动增加怎么办?WordPress缓存导致文章阅读数点赞数不更新...
- mysql pdo 读取字段名_PDO如何处理SQL语句中对字段名以及表名的转义
- 电脑桌面出现透明条图标“复制”“刷新”解决方法
- 命令行编译并运行JAVA
- anaconda中更改python版本
- java常用算法整理
- docker 配置远程deamon
- 格林威治时间转北京时间
- 微信小游戏Laya引擎声音Bug的解决方案
热门文章
- Find Familiar Service Features in Lightning Experience
- [YTU]_2532(投简历)
- 循环相关函数range、enumerate、zip
- matlab读取/播放视频的函数(1)
- adaptiveThreshold函数
- java servlet helloworld,Java如何创建HelloWorld Servlet?
- php与mysql同步_php实现mysql同步的实现方法
- css 加随机数 引用_在CSS中生成随机数
- 有序数组给定始末的中位数c++
- Class.getResources()和classLoader.getResources()区别