【基于EF Core的Code First模式的DotNetCore快速开发框架】完成对DB First代码生成的支持
前言
距离上一篇文章《基于EF Core的Code First模式的DotNetCore快速开发框架》已过去大半个年头,时光荏苒,岁月如梭。。。比较尴尬的是,在这大半个年头里,除了日常带娃溜娃做饭,偶尔接几个私单外,个人开源项目几乎没啥动静。那么日常工作干些什么呢?肯定是坚守Nfx啊。。。为什么呢?不做Nfx那是不可能的,毕竟要吃饭...讲真,大山城作为新进一线网红大城市环境,dotneter们活得非常坚挺的,眼看又一波猛涨的房价和这危机年,还是默默加完班后夜跑几十公里,锻炼好身体,多做几单深夜兼职,兴许运气来了能碰一个少奋斗20年的捷径...前提是得做好各种滴水不漏的安全措施以防止猝死暴毙...
至于多坑还是坑多,早已傻傻分不清,坊间谣传民间大神的【重庆求职防坑手册】早已被喷的不能自已,甚至已经下架
契机
前不久,科技巨头微软粑粑发布了dotnetcore 2.1,以其一贯的尿性作风,应该可以上车了。然而我还在坚守Nfx,毕竟公司成熟平台成熟产品以及成熟人力结构,冒然大跃进是肯定要承担各种被扣帽子风险的。虽然明面上上车无望,私下勾搭还是有戏。前些时日,接到道友们热情诚挚的需求,添加对DB First的支持,懒人有懒福...
更新内容
Gayhub地址:https://github.com/VictorTzeng/Zxw.Framework.NetCore
具体更新内容,大大小小还是有点多,这里就不啰嗦正经的话,具体情况具体代码里见。
- 添加EFCore直接返回DataTable功能
- DBFirst功能,目前仅支持SQL Server、MySQL、NpgSQL三种数据库。根据已存在的数据表直接生成实体代码,详见CodeGenerator
- 添加单元测试项目,并完成对以上两点新功能的测试
- 引入IOC容器Aspectcore.Injector,详见AspectCoreContainer.cs
手拿来,手把手摸你
目前仅支持Sqlserver、MySQL、NpgSQL等三种数据库,具体用法如下:
- 注入DbContextOption
-
1 services.Configure<DbContextOption>(options => 2 { 3 options.ConnectionString = 4 "User ID=zengxw;Password=123456;Host=localhost;Port=5432;Database=ZxwPgDemo;Pooling=true;"; 5 }); 6 services.AddScoped<IDbContextCore, PostgreSQLDbContext>(); //注入EF上下文
注入CodeGenerateOption
-
1 services.Configure<CodeGenerateOption>(options => 2 { 3 options.OutputPath = "F:\\Test\\PostgreSQL"; 4 options.ModelsNamespace = "Zxw.Framework.Website.Models"; 5 options.IRepositoriesNamespace = "Zxw.Framework.Website.IRepositories"; 6 options.RepositoriesNamespace = "Zxw.Framework.Website.Repositories"; 7 options.ControllersNamespace = "Zxw.Framework.Website.Controllers"; 8 });
调用GenerateAllCodesFromDatabase生成所有代码
1 CodeGenerator.GenerateAllCodesFromDatabase(true);
总结与计划
工作之余,多陪家人多陪孩子,多读书多看报,多锻炼身体,毕竟钱是挣不完的。。。如果各位道友有多的可以全都扔过来,哈哈哈
关于计划,不过于长期坚持下去,比如近期打算重写支付模块和引入企业微信。
另外,如果有私单合作或者商务合作,又或者优质岗位推荐,24小时全天全月全年随时欢迎留言或者私信~~