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

1544537771197

我们的Comment这一行的内容已经跟Name一样了!

数据库脚本生成

首先打开我们生成的物理模型,扩展名为pdm的文件,如下图所示,乍一看跟物理模型差不多,实际上还是有区别的!

1544538222229

然后依次如下图所示选择“Database”->"Generate Database" 或者快捷键Ctrl+G打开数据库生成选项对话框

1544538320805

如下图所示设置一下生成的数据库脚本的路径以及脚本名称即可生成数据库脚本文件,如下图所示:

1544539197457

到我们上面设置的文件夹里即可查看到我们生成的数据库脚本,如下图所示:

1544539359326

数据库生成

打开我们的数据库,并新建一个名为CzarCms的新的数据库,如下图所示:

1544539477339

选择我们新建的数据库,然后按照如下图所示的方式打开我们刚才生成的数据库脚本

1544539621124

如下图所示确认一下目前选择的是你刚新建的数据库,然后点击执行,执行下脚本

1544539734388

不出以外的话会出现如下图所示的“命令已成功完成”的消息,这表示脚本执行成功了,然后刷新下我们刚才的数据库,可以看到我们的表已经生成成功了!

1544539898998

这里你可以检查下,看看生成的数据库表有没有问题,如果有问题的话,重新走一遍流程生成脚本然后执行下就行了,不过需要注意的是,如果你数据库中有数据就要当心了,重新生成的脚本会drop掉你的表重新创建,所以如果是个别字段出问题的话就逻辑模型以及物理模型修改后,手动在数据库中修改即可!

这里我给每个表的主键设计了自增,给isdelete等等设置了默认的0,以及addtime设置了getdate()等等。

实体模型生成器编写

好了,上面我已经带着你一步一步的演示了数据库的创建过程,下面我就带着你实现一个简单的POCO实体对象的代码生成器吧!什么?市面上不是有很多代码生成器吗?靠,我就是要带着你自己实现一个,咋滴?是用别人的爽,还是用自己实现的爽呢?自己琢磨吧!

思考

大家先脑补一下,如果是你想根据数据库实现一个代码生成器你的思路是怎样的呢?是不是首先得获取下数据库里面的所有的表,然后获取这些表对应的列以及列的类型,是否为空等等信息。然后再建一个模板,循环这些表的信息来根据模板创建对应的文件呢。
至于模板文件可能你会想到T4或者CodeSmish模板等等,可这些都太复杂了,复杂的语法以及灵活性的问题我这里选择另一个文本文件的形式来进行代码的生成。

这个代码生成器的灵感以及部分代码来自于Zxw.Framework.NetCore,这个框架的github地址是:https://github.com/VictorTzeng/Zxw.Framework.NetCore/tree/master/Zxw.Framework.NetCore 有兴趣的小伙伴可以看下。

下面就让我们简单实现下我们自己的实体模型代码生成器吧.

实体代码生成器

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wspyxd.html