Zoey.Dapper--Dapper扩展之把SQL语句放到文件中

 介绍

不知道大家在用Dapper的时候SQL语句是写到哪的,目前看网上的例子都是写到类里面的.

此项目的目的是把SQL语句放到文件(xml)中

目前只是初步版本,只是说明了意图,后面会持续完善和优化

GitHub 地址

功能说明

  • SQL 语句单独存放在文件(xml)中
  • 支持配置多文件夹(暂不支持指定具体文件)
  • 实时监听文件变化
  • 支持多数据库(Dapper 本身就支持多数据,为什么这里说支持多数据呢?后面会讲到)
  • 支持读写分离(功能虽然有,但配置看起来不爽,后续应该会优化. 负载平衡算法还未实现)

一起看看如何使用

  1. 首先我们需要一个xml文件,如下:

    <?xml version="1.0" encoding="utf-8" ?> <sql xmlns="http://schema.zoey.com/sql" domain="Default"> <sql-query name="Student.GetStudentByID">     <text>     <![CDATA[     SELECT * FROM Student WHERE ID = @ID     ]]>     </text> </sql-query>  <sql-command name="Student.UpdateStudentByID">     <text>     <![CDATA[     UPDATE Student SET Age = @Age,Name = @Name WHERE ID = @ID     ]]>     </text> </sql-command> </sql>

    这里我们看下面几点:

    • sql节点上的domain属性.这里是指定数据库的连接字符串,后面会详细说明
    • 读写分离就是sql-querysql-command节点来判断的
    • name属性目前是所有文件都不能重复
  2. Startup中的ConfigureServices添加如下代码:

    //SQL文件的读取和监视依赖 IFileProvider  var physicalProvider = _env.ContentRootFileProvider;  services.AddSingleton<IFileProvider>(physicalProvider);   services.AddZoeyDapperCore(options =>  {      //SQL文件夹的路径  支持多个文件夹      options.Path = new List<string>() { "/Config" };      //监控文件的后缀(默认未 *.*)      options.WatchFileFilter = "*.xml";      //该属性暂时没用      options.StartProxy = false;  })  //添加MSSQLserver  //这里说明一下 该方法是非必要的,下面会说  .AddMSSQLserver(option =>  {      //添加数据库连接字符串      //这里为什么没用配置文件读取,考虑到可能用到(Secret Manager)      //后面可以提供直接从配置文件中读取      option.DatabaseElements = new List<DatabaseElement>()      {          //参数1:唯一名称          //参数2:连接字符串          new DatabaseElement("TESTDB","Data Source=.;Initial Catalog=Test;Integrated Security=True")      };      //此处就是上面提到的 domain 节点      //每个domain对象有个唯一名称(xml文件domain的节点)      //每个domain对象都有 Master(主库) 和 Slave(从库) 的名称(上面配置信息的名称)      option.DomainElements = 
                            
    关键字:
50000+
5万行代码练就真实本领
17年
创办于2008年老牌培训机构
1000+
合作企业
98%
就业率

联系我们

电话咨询

0532-85025005

扫码添加微信