模板自动化生产代码的前提是标准化,本文的基本信息如下,如能帮到大家就好。互相学习进步。
语言:C# netcore
底层:dapper+contrib
前端:vue+elementui
数据:sqlserver
生产思路
首先我们将耀自动生成,也就是需要生产的产品,以及产品的主要属性归纳一下
操作方法
源码demo
片段
#region 生成SQL
StringBuilder modelStr = new StringBuilder();
foreach (var item in tableList)
{
modelStr.Append("------------" + item.TableName + "表创建begin------------");
modelStr.AppendLine();
modelStr.Append("CREATE TABLE [" + item.TableName + "] ( ");
modelStr.Append("ID int IDENTITY(1,1) NOT NULL, ");
var cList = tableColumnList.Where(t => t.AutoTableID == item.ID).ToList();
foreach (var itemColumn in cList)
{
modelStr.Append(itemColumn.Name + " " + ColumnType[itemColumn.Type] + " NULL,");
}
//设置主键
modelStr.Append(" CONSTRAINT [PK_" + item.Name + "] PRIMARY KEY CLUSTERED ([ID] ASC ) WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON[PRIMARY] )ON [PRIMARY] ");
//设置注释
foreach (var itemColumn in cList)
{
modelStr.Append("EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'" + itemColumn.Note + "' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'" + item.TableName + "', @level2type=N'COLUMN',@level2name=N'" + itemColumn.Name + "' ");
}
modelStr.AppendLine();
modelStr.Append("------------" + item.Name + "表创建end------------");
}
整体都是这么一点点的拼接起来的。后续有几个项目也用了,感觉还可以,微调一下就行。
开发效率杠杠滴
代码源码demo 地址
https://download.youkuaiyun.com/download/vimanas/12367483