C# model代码生成器
using System.Collections.Generic;
using System.Text; public class Class1
{
//传递 1.表名 2.列名 3.类型
public void GenerateModel(string TableName, string ColumnName, string TypeName) //生成Model
{
#region 数据库ID所对应的类型值
Dictionary<int, string> DicType = new Dictionary<int, string>();
DicType.Add(, "int");
DicType.Add(, "string");
#endregion
#region 列名集合和数据ID
Dictionary<string, int> DicColum = new Dictionary<string, int>();
DicColum.Add("DictID", );
DicColum.Add("DictType", );
DicColum.Add("ParentID", );
DicColum.Add("Subtitle", );
DicColum.Add("Sorting", );
#endregion TypeName = "Model";
TableName = "TableName";
TableName = TableName + TypeName;
StringBuilder sb = new StringBuilder();
sb.Append("using System;"); //引入命名空间
sb.Append("namespace "); //命名空间名字
sb.Append(TypeName + "{");
sb.Append(" public partial class ");
sb.Append(TableName + "{");
sb.Append("public " + TableName + "(){}"); sb.Append("#region Model" + "\r\n"); //Begin
#region //内容
foreach (var i in DicColum)
{
foreach (var j in DicType)
{
if (i.Value == j.Key) // DicColum的56== DicType的56
{
sb.Append("private ");
sb.Append(j.Value);
sb.Append(" _");
//sb.Append(i.Key); //DicColumd的DictID //转换一下大小写在追加
sb.Append(i.Key.ToLower());
sb.Append(";\r\n");
}
}
} foreach (var i in DicColum)
{
foreach (var j in DicType)
{
if (i.Value == j.Key) // DicColum的56== DicType的56
{
sb.Append("public ");
sb.Append(j.Value);
sb.Append(" ");
sb.Append(i.Key);
sb.Append("{\r\n"); //set{ _dicttype=value;}
sb.AppendFormat("set{{ _{0} =value;}}", i.Key.ToLower());
sb.AppendFormat("get{{return _{0} ;}}", i.Key.ToLower());
sb.Append("\r\n}");
}
}
} #endregion
sb.Append("\r\n" + "#endregion"); //End sb.Append("\r\n" + "}}");
//sb.AppendFormat("using System;namespace {0}{ public partial class Dictionary{1}{ public {1}(){}}}");
string ss = sb.ToString();
} public void GenerateDAL(string TableName, string ColumnName, string TypeName)
{
TypeName = "DAL";
TableName = "ClassName";
TableName = TableName + TypeName; StringBuilder sb = new StringBuilder();
sb.Append("using System;"); //引入命名空间
sb.Append("using System.Data;");
sb.Append("using System.Text;");
sb.Append("using System.Data.SqlClient;");
sb.Append("using System.Collections.Generic;");
sb.AppendFormat("namespace {0}\r\n{\r\n", TypeName);
sb.AppendFormat(" public partial class {0}\r\n{\r\n", TableName);
sb.AppendFormat("public {0}(){}", TableName); //构造函数
sb.AppendFormat("public int Add({0} model)\r\n{{\r\n", "Model模型名称");
sb.Append("StringBuilder strSql = new StringBuilder();");
//这种方法不好---------终止 }
}
C# model代码生成器的更多相关文章
- 提高生产性工具 - Model代码生成器(二)
首先,我想阐述一下我开发这个工具的一个观点. 如果大家做过对日软件的话,很多时候,日方是进行设计的,数据模型是什么样子的,各个字段的类型,需要做什么验证,验证规则,错误信息,都是日方制定的. 外包就是 ...
- 提高生产性工具 - Model代码生成器(NET / JAVA) (一)
原来在上一家公司,整整一年都在做工具,提高生产性,那个项目特别巨大,所以总共为老东家节约了500K左右的美金. (除了表扬之外,我个人什么好处都没有,领导们都升官发财了,郁闷) 到了新公司,也准备开发 ...
- EntityFramework4.1 MODEL代码生成器 database first
原文发布时间为:2011-04-02 -- 来源于本人的百度文章 [由搬家工具导入] Generating EF Code First model classes from an existing d ...
- .NET Core实战项目之CMS 第十一章 开发篇-数据库生成及实体代码生成器开发
上篇给大家从零开始搭建了一个我们的ASP.NET Core CMS系统的开发框架,具体为什么那样设计我也已经在第十篇文章中进行了说明.不过文章发布后很多人都说了这样的分层不是很合理,什么数据库实体应该 ...
- Yii2 自定义Gii生成代码模板
我们使用一个例子来介绍如何定制代码模板.假设我们想要定制由 model 生成器生成的代码. 我们首先创建一个名为 protected/gii/model/templates/customer 的目录. ...
- Spring Boot笔记一
Spring Boot 入门 Spring Boot 简介 > 简化Spring应用开发的一个框架:> 整个Spring技术栈的一个大整合:> J2EE开发的一站式解决方案: 微服务 ...
- mybatis自定义代码生成器(Generator)——自动生成model&dao代码
花了两天的时间研究了下mybatis的generator大体了解了其生成原理以及实现过程.感觉generator做的非常不错,给开发者也留足了空间.看完之后在generator的基础上实现了自定义的生 ...
- 【动软.Net代码生成器】连接MySQL生成C#的POCO实体类(Model)
首先是工具的下载地址: 动软.Net代码生成器 该工具官网自带完整教程: 文档:http://www.maticsoft.com/help/ 例子:http://www.maticsoft.com/h ...
- 更改动软代码生成器模板 验证Model数据合法性
1.第一个模板 判断字段是否为空 类 IsNullableType.cmt static public partial class CommonType { public static bool Is ...
随机推荐
- zabbix监控AIX DB2数据库
记一次工作中使用zabbix监控aix db2数据库的经历. 记忆要点: 1.使用自定义perl脚本: 2.由于zabbix用户权限的原因,无法调用db2用户获取数据库的数据,所以在zabbix配置文 ...
- 域名IP绑定
该文为阿里云域名举例 首先具备3个前提: 买服务器并搭建环境:阿里云官网购买阿里云的服务器(我购买的是window系统,ECS服务器). 在自己的云服务器上布置上jdk,配置环境变量:安装上tomca ...
- ecshop中{$lang.}标签的修改
{$lang.}之类的文字都是在语言包里边定义的,所以要修改这些文字的话,我们只需要修改语言包里的文件.首先需要看一下你使用的语言是哪种,如果是中文的话,修改 languages/zh_cn/com ...
- NLTK学习笔记(五):分类和标注词汇
目录 词性标注器 标注语料库 表示已经标注的标识符:nltk.tag.str2tuple('word/类型') 读取已经标注的语料库 名词.动词.形容词等 尝试找出每个名词类型中最频繁的名词 探索已经 ...
- PAT 1080. Graduate Admission
It is said that in 2013, there were about 100 graduate schools ready to proceed over 40,000 applicat ...
- fzoj 2113数位dp
参考http://blog.csdn.net/xingyeyongheng/article/details/8785785 #include<stdio.h> #define ll lon ...
- [bzoj2049][Sdoi2008]Cave 洞穴勘测_LCT
Cave 洞穴勘测 bzoj-2049 Sdoi-2008 题目大意:维护一个数据结构,支持森林中加边,删边,求两点连通性.n个点,m个操作. 注释:$1\le n\le 10^4$,$1\le m\ ...
- WebApplicationContext初始化(转)
ApplicationContext是Spring的核心,Context我们通常解释为上下文环境,我想用“容器”来表述它更容易理解一些,ApplicationContext则是“应用的容器”了:在We ...
- python清除数据库错误日志
# coding=gbk from encodings import gbk import re import sys import os import pyodbc import trac ...
- Lightoj 1112 - Curious Robin Hood 【单点改动 + 单点、 区间查询】【树状数组 水题】
1112 - Curious Robin Hood PDF (English) Statistics Forum Time Limit: 1 second(s) Memory Limit: 64 MB ...