【ORM】SqlSugar ORM初体验

前沿:近期要用多款数据库,所以需要使用ORM来协助自动生成实体类和根据实体类生成数据库和表结构到多个不同数据库进行替代。于是了解到了SqlSugar,发现挺好用。顺便弄个DbFirst和CodeFirst穿插的入门教程,供参考。(封面来源于Midjourney)

1、创建一个类库项目,选择 .net standard 2.1版本.

【ORM】SqlSugar ORM初体验

2、引用最新版sqlsugarcore

【ORM】SqlSugar ORM初体验

3、新增一个存放连接数据库的连接实体类,由于可能存在多个数据库,此处做成了字典来存放。

【ORM】SqlSugar ORM初体验

4、创建一个连接工厂配置类,用于自定义连接哪些数据库使用。把常用的数据库类型都定义上,备用。

【ORM】SqlSugar ORM初体验

5、再定义接口,用于后面实现依赖注入使用

【ORM】SqlSugar ORM初体验

6、创建一个webapi项目,用来做测试验证使用

【ORM】SqlSugar ORM初体验

7、在项目里面,新建一个DBModels备用,用来存放数据库实体类使用。并且在配置文件内,新增一个配置项,用来配置数据库连接,先配置一个Oracle数据库进行测试

【ORM】SqlSugar ORM初体验

8、添加一个简易版的读取appsettings内容的包:Wesky.Extensions.AppsettingsExtension

【ORM】SqlSugar ORM初体验

9、创建一个启动执行代码类,用来当程序启动的时候,读取配置文件内容进行初始化使用

【ORM】SqlSugar ORM初体验

10、在program启动项里面,进行有关的服务注册

【ORM】SqlSugar ORM初体验

11、新增一个用来生成数据库或者实体类的操作类。例如现在已有一个数据库,要生成实体类,配置要生成的路径以及规则,例如大小写等。

【ORM】SqlSugar ORM初体验

12、补全接口定义

【ORM】SqlSugar ORM初体验

13、新增一个api控制器,用来测试使用

【ORM】SqlSugar ORM初体验

14、新增一个api,通过传入name值(对应配置文件内DB数组里面的Name),来生成实体类的测试demo

【ORM】SqlSugar ORM初体验

15、该数据库已有一系列表结构有关

【ORM】SqlSugar ORM初体验

16、输入上面配置文件的Name值,进行测试

【ORM】SqlSugar ORM初体验

17、运行成功,在指定目录下生成了有关表结构对应的实体类

【ORM】SqlSugar ORM初体验

18、通过生成的实体类,反向生成数据库。新增操作根据不同数据库配置生成数据库和表结构有关

【ORM】SqlSugar ORM初体验

19、新增配置项,例如mysql数据库,为了方便辨识,数据库名称为 wwwwwwwwwwesky

【ORM】SqlSugar ORM初体验

20、新增api接口,用来根据已有实体类,反向生成数据库。包括俩参数,Name对应的是配置文件里面的Name,fromModel对应的是代码文件夹所在的实体类文件夹名称,或者命名空间

【ORM】SqlSugar ORM初体验

21、启动程序,输入api参数进行测试。第二个参数值和代码本地OraModel文件夹对应(如果是其他目录,则填写其他)

【ORM】SqlSugar ORM初体验

22、mysql会自动生成指定的数据库,以及对应的表结构

【ORM】SqlSugar ORM初体验

23、再测试一下kingbase数据库,在配置文件内新增连接信息

【ORM】SqlSugar ORM初体验

24、先确认下,kingbase内目前没有有关数据库。kingbase内核是postgresql,所以理论上也是支持自动创建指定数据库的。

【ORM】SqlSugar ORM初体验

25、同操作mysql数据库一样,运行程序,启动一下进行测试。可以发现生成了有关数据库,并自动生成了有关表结构

【ORM】SqlSugar ORM初体验

【ORM】SqlSugar ORM初体验

26、如需以上测试demo源码,请在本公众号【Dotnet Dancer】后台回复【ORM入门】进行获取。

27、如需加入.NET交流群,可扫以下二维码进行加入,欢迎大佬入围。

【ORM】SqlSugar ORM初体验

如果加群加不上去,可以添加作者微信【WeskyNet001】备注【 .NET】 进行手动邀请。