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代码生成器的更多相关文章

  1. 提高生产性工具 - Model代码生成器(二)

    首先,我想阐述一下我开发这个工具的一个观点. 如果大家做过对日软件的话,很多时候,日方是进行设计的,数据模型是什么样子的,各个字段的类型,需要做什么验证,验证规则,错误信息,都是日方制定的. 外包就是 ...

  2. 提高生产性工具 - Model代码生成器(NET / JAVA) (一)

    原来在上一家公司,整整一年都在做工具,提高生产性,那个项目特别巨大,所以总共为老东家节约了500K左右的美金. (除了表扬之外,我个人什么好处都没有,领导们都升官发财了,郁闷) 到了新公司,也准备开发 ...

  3. EntityFramework4.1 MODEL代码生成器 database first

    原文发布时间为:2011-04-02 -- 来源于本人的百度文章 [由搬家工具导入] Generating EF Code First model classes from an existing d ...

  4. .NET Core实战项目之CMS 第十一章 开发篇-数据库生成及实体代码生成器开发

    上篇给大家从零开始搭建了一个我们的ASP.NET Core CMS系统的开发框架,具体为什么那样设计我也已经在第十篇文章中进行了说明.不过文章发布后很多人都说了这样的分层不是很合理,什么数据库实体应该 ...

  5. Yii2 自定义Gii生成代码模板

    我们使用一个例子来介绍如何定制代码模板.假设我们想要定制由 model 生成器生成的代码. 我们首先创建一个名为 protected/gii/model/templates/customer 的目录. ...

  6. Spring Boot笔记一

    Spring Boot 入门 Spring Boot 简介 > 简化Spring应用开发的一个框架:> 整个Spring技术栈的一个大整合:> J2EE开发的一站式解决方案: 微服务 ...

  7. mybatis自定义代码生成器(Generator)——自动生成model&dao代码

    花了两天的时间研究了下mybatis的generator大体了解了其生成原理以及实现过程.感觉generator做的非常不错,给开发者也留足了空间.看完之后在generator的基础上实现了自定义的生 ...

  8. 【动软.Net代码生成器】连接MySQL生成C#的POCO实体类(Model)

    首先是工具的下载地址: 动软.Net代码生成器 该工具官网自带完整教程: 文档:http://www.maticsoft.com/help/ 例子:http://www.maticsoft.com/h ...

  9. 更改动软代码生成器模板 验证Model数据合法性

    1.第一个模板 判断字段是否为空 类 IsNullableType.cmt static public partial class CommonType { public static bool Is ...

随机推荐

  1. CSS定位相关

    CSS display:inline和float:left两者区别 ①display:inline:任何不是块级元素的可见元素都是内联元素.其表现的特性是“行布局”形式!(行布局:其表现形式始终以行进 ...

  2. Git 基础教程 之 分支管理及策略

    创建一个属于自己的分支,别人看不到,你在你自己的分支上干活, 想提交就提交,直至开发完毕后,再一次性合并到原来分支上.这样,既安全,又不影响他人工作.          在实际的开发过程中,应照几个基 ...

  3. 3..jquery的ajax获取form表单数据

    jq是对dom进行的再次封装.是一个js库,极大简化了js使用 jquery库在js文件中,包含了所有jquery函数,引用:<script src="jquery-1.11.1.mi ...

  4. 3.IDEA+Maven+Spring注解+Servlet+MyBatis

    1.创建项目模块 2. 选择创建的项目类型,maven的web项目 3.输入项目名 4.选择自己配置的本地maven库 5.创建项目 6.查看项目结构 7.配置项目的依赖pom.xml <?xm ...

  5. 图像滑动窗口 利用opencv和matlab

    1.利用opencv实现图像滑动窗口操作 功能:利用opencv实现图像滑动窗口操作(即利用已知尺寸的窗口遍历整幅图像,形成许多子图像)  vs2015+opencv3.1  2016.10 函数实现 ...

  6. 【习题 4-5 Uva1590】 IP Networks

    [链接] 我是链接,点我呀:) [题意] 在这里输入题意 [题解] 假设从第i位开始有不一样的. 那么就把i+1..32位全都置0. 掩码的话类似.前i为全为1,后面32-i位全0. 尽量让后面的连续 ...

  7. 【hihocoder 1298】 数论五·欧拉函数

    [题目链接]:http://hihocoder.com/problemset/problem/1298 [题意] [题解] 用欧拉筛法; 能够同时求出1..MAX当中的所有质数和所有数的欧拉函数的值; ...

  8. 洛谷 P2634 BZOJ 2152 【模板】点分治(聪聪可可)

    题目描述 聪聪和可可是兄弟俩,他们俩经常为了一些琐事打起来,例如家中只剩下最后一根冰棍而两人都想吃.两个人都想玩儿电脑(可是他们家只有一台电脑)……遇到这种问题,一般情况下石头剪刀布就好了,可是他们已 ...

  9. 洛谷 P1494 BZOJ 2038 [2009国家集训队]小Z的袜子(hose)

    //洛谷题面字体.排版我向来喜欢,却还没收录这道如此有名的题,BZOJ的题面字体太那啥啦,清橙的题面有了缩进,小标题却和正文字体一致,找个好看的题面咋这么难呐………… //2019年3月23日23:0 ...

  10. GetBulkRequest PDU的应用

    http://blog.csdn.net/wenph2008/article/details/16821617