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

1544663123867

接下来就是新建一个测试类,然后创建一个依赖注入容器,并把我们需要的Option传递进去,如下所示:

/// <summary> /// 构造依赖注入容器,然后传入参数 /// </summary> /// <returns></returns> public IServiceProvider BuildServiceForSqlServer() { var services = new ServiceCollection(); services.Configure<CodeGenerateOption>(options => { options.ConnectionString = "Data Source=.;Initial Catalog=CzarCms;User ID=sa;Password=1;Persist Security Info=True;Max Pool Size=50;Min Pool Size=0;Connection Lifetime=300;";//这个必须 options.DbType = DatabaseType.SqlServer.ToString();//数据库类型是SqlServer,其他数据类型参照枚举DatabaseType//这个也必须 options.Author = "yilezhu";//作者名称,随你,不写为空 options.OutputPath = @"E:\workspace\vs2017\Czar.Cms\src\Czar.Cms.Models";//实体模型输出路径,为空则默认为当前程序运行的路径 options.ModelsNamespace = "Czar.Cms.Models";//实体命名空间 }); services.AddSingleton<CodeGenerator>();//注入Model代码生成器 return services.BuildServiceProvider(); //构建服务提供程序 }

接着就是写我们的测试方法了,代码如下:

[Fact] public void GeneratorModelForSqlServer() { var serviceProvider= BuildServiceForSqlServer(); var codeGenerator = serviceProvider.GetRequiredService<CodeGenerator>(); codeGenerator.GenerateModelCodesFromDatabase(); Assert.Equal(0,0); }

运行一下我们的Live Unit Testing 然后看一下我们的Czar.Cms.Models下面已经生成了对应的实体文件,如下图所示:

1544663523474

随便打开一个看小效果如下:我标注的你猜猜看都是对应的哪个Options

1544663584296

开源地址

这个系列教程的源码我会开放在GitHub以及码云上,有兴趣的朋友可以下载查看!觉得不错的欢迎Star
GitHub:https://github.com/yilezhu/Czar.Cms
码云:https://gitee.com/yilezhu/Czar.Cms
如果你觉得这个系列对您有所帮助的话,欢迎以各种方式进行赞助,当然给个Star支持下也是可以滴!另外一种最简单粗暴的方式就是下面这种直接关注我们的公众号了:

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


第一时间收到更新推送。

总结

这篇文章我们一步一步的生成了我们的数据库,然后手把手带着你实现了我们自己的实体模型代码生成器来简化我们的开发过程。接下来我们就开始实现仓储层应用层的代码了,同时我们会提取通用部分的代码来进行模板代码生成来简化我们的工作!俗话说的好,不会偷懒的程序员不是一个好爸爸,好丈夫,好儿子,减少代码的时间多抽点时间陪陪家人吧!如果你有其他想法可以在下方留言,或者加群637326624跟大伙一起讨论。共同进步!共勉!

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

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