• .net core 3.1 加入ORM框架(Dapper)


    对比了几个主流的ORM框架如SqlSuger Dapper SmartSql , 选择Dapper 主要是个人习惯,平时写sql比较多,感觉Dapper比较符合自己风格

    首先安装 Dapper

    平时使用Mysql比较多,但是为了后续兼容SqlServer等其他数据库,先建一个DbFactory,用来管理数据库连接

    当然,因为DbFactory命名规则不一致,要手动注入

    在Startup.cs 文件的ConfigureContainer 方法中加入一行代码:

    builder.RegisterType<DbFactory>().As<IDbFactory>();

    DbOption 类定义连接数据库参数

     

    在Startup.cs文件的ConfigureServices方法中注入:
    services.Configure<DbOption>(Configuration.GetSection("DbOption"));

     实际数据库相关参数记录在appsettings.json文件中

    "DbOption": {
    "ConnectionString": "server=127.0.0.1;database=leon;user=root;pwd=root;SslMode=none;",
    "DbModel": "MySQL"
    }

    数据库及相关表自行创建

     配置好基本工作,接下来就是调用方法(BaseService可以先忽略,下面会讲到)

    在构造函数中注入DbFactory,就可以调用了,Dapper的语法不了解的自行百度了

     至此,Dapper的配置调用已经完成了。

    考虑到每个对象会有很多相同的操作,例如获取列表,根据主键获取信息等,如果每次都手写太麻烦,因此考虑引入Dapper 扩展

    安装 Dapper.SimpleCRUD

    注:引入Dapper.SimpleCRUD时,在DbFactory.cs要加入下面一行代码, 因为mysql语句不支持中括号,加上这个设置避免报错

    Dapper.SimpleCRUD.SetDialect(Dapper.SimpleCRUD.Dialect.MySQL);

    新建公共类BaseService(接口就不展示了),通用方法可以网上百度

    注入DbFactory,声明DbConnection

     在UserService 中继承BaseService,则可以继承BaseService中所有通用方法

    Dapper定义实体类要注意,假设主键不是Id,应加入[Key]关键字

    控制器中就可以直接调用继承baseService的方法

     

    以上就是Dapper 的使用介绍,Dapper还有其他的扩展,有兴趣可以继续研究一下。

  • 相关阅读:
    72. Edit Distance
    电脑常识
    java try·····catch·····异常处理学习
    java链接sqlserver数据库
    HTTP Status 500
    初识NDA
    Sublime Text_v2.02包含中文包以及使用方法
    ol 与ul 的区别
    word-break: break-all word-break:keep-all word-wrap: break-word三者的区别
    用deamon打开ISO文件,提示命令行错误!!
  • 原文地址:https://www.cnblogs.com/zxtceq/p/14207634.html
Copyright © 2020-2023  润新知