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 ...
随机推荐
- 配置Jupyter
前几天见同学有用Jupyter notebook的,有点喜欢,于是今天自己配了一下. Jupyter是一个非常好用编辑器,因为Jupyter notebook 不仅可以编写代码运行,并且可以直接在代码 ...
- 10.shard、replica机制及单node下创建index
主要知识点 1.shard&replica机制梳理 2.单node环境下创建index的情况 1.shard&replica机制再次梳理 (1)index包含多 ...
- IntelliJ IDEA 和 webstorm更换主题
1. 搜索http://color-themes.com/?view=index 2. 查找自己喜欢的主题,下载 3. 放在安装位置(个人习惯,放在哪都行,能找到就行) 4. 然后打开importSe ...
- nyoj 547 优先队列
#include<stdio.h> #include<string.h> #include<queue>//水杯盛水问题,用优先队列不断从最小的边缘开始 using ...
- MySQL 5.7并行复制时代
众所周知,MySQL的复制延迟是一直被诟病的问题之一,然而在Inside君之前的两篇博客中(1,2)中都已经提到了MySQL 5.7版本已经支持“真正”的并行复制功能,官方称为为enhanced mu ...
- 网络编程中的CAP & 有趣的存储框架(关系型、NoSQL)全图
第七篇 CAP https://zhuanlan.zhihu.com/p/20399316?refer=auxten CAP定理(CAP theorem),又被称作布鲁尔定理(Brewer’s t ...
- POJ 2374
挺水的一道线段树+DP题.可以从底往上添加线段,每添加线段之前查询端点所被覆盖的区间线段.再从最顶往下DP,每次从端点出发,递推覆盖该端点的区间线段的两端的值即可. #include <cstd ...
- UVa 10290 - {Sum+=i++} to Reach N
题目:给你一个数字问将他写成连续的数字的和的形式.有几种写法. 分析:数论. 设拆成的序列个数为k,我们分两种情况讨论: 1.拆成奇数个连续数.那么设中位数是a,则有n = k * a: 2.拆成偶数 ...
- 基于ActiveMQ的消息中间件系统逻辑与物理架构设计具体解释
1. 基本介绍与组件架构图 维基百科对消息中间件的定义是"Message-oriented Middleware is software infrastructure focused on ...
- Xamarin Mono For Android、Monotouch 安装
一.Windows下面的安装 1. 安装环境介绍: Win8.1 企业版64位或Win7 64.VS2013 update4 2. 安装jdk 到oracle官方下载jdk-8u45-wi ...