zoukankan      html  css  js  c++  java
  • MyDAL

    索引:

    目录索引

    一.API 列表

      .QueryListAsync()

      .QueryListAsync<M>()

        如: .QueryListAsync<AgentInventoryRecord>() , 用于 单表/多表连接 查询. 

      .QueryListAsync<VM>()

        如: .QueryListAsync<AgentVM>() , 用于 单表 查询.

      .QueryListAsync<T>(Expression<Func<M, T>> columnMapFunc)

        如: .QueryListAsync(it => it.Name) , 用于 单表 单列 查询.

        或者: 

          .QueryListAsync(agent => new AgentVM
                      {
                          XXXX = agent.Name,
                          YYYY = agent.PathId
                      })  , 用于 单表 多列 查询.

      .QueryListAsync<T>(Expression<Func<T>> columnMapFunc)

        如:  .Queryer(out Agent agent1, out AgentInventoryRecord record1)

          ... ...

          .QueryListAsync(() => agent1.CreatedOn)   , 用于 多表连接 单列 查询.

        或者: .Queryer(out Agent agent12, out AgentInventoryRecord record12)

            ... ...

           .QueryListAsync(() => new AgentVM
                      {
                          nn = agent12.PathId,
                          yy = record12.Id,
                          xx = agent12.Id,
                          zz = agent12.Name,
                          mm = record12.LockedCount
                      })  , 用于 多表连接 多列 查询.

    二.API 单表-便捷 方法 举例

      1. 单表 单列 多条 便捷方法 

    1             var res7 = await Conn.QueryListAsync<Agent, string>(it => it.Name.StartsWith(""), it => it.Name);

        以 MySQL 为例,生成 SQL 如下:

    1 select `Name`
    2 from `Agent`
    3 where  `Name` like  ?Name_1;

      2. 单表 多列 多条 便捷方法

    1        var date = DateTime.Parse("2018-08-20");
    2 
    3             var res3 = await Conn.QueryListAsync<AlipayPaymentRecord, AlipayPaymentRecordVM>(it => it.CreatedOn >= date,
    4                 it => new AlipayPaymentRecordVM
    5                 {
    6                     TotalAmount = it.TotalAmount,
    7                     Description = it.Description
    8                 });

        以 MySQL 为例,生成 SQL 如下:

    1 select     `TotalAmount` as TotalAmount,
    2         `Description` as Description
    3 from `AlipayPaymentRecord`
    4 where  `CreatedOn`>=?CreatedOn_1;

      3. 单表 VM 多条 便捷方法

    1             var date = DateTime.Parse("2018-08-20");
    2 
    3             var res2 = await Conn.QueryListAsync<AlipayPaymentRecord, AlipayPaymentRecordVM>(it => it.CreatedOn >= date);

        以 MySQL 为例,生成 SQL 如下:

    1 select     `Id`,
    2     `CreatedOn`,
    3     `TotalAmount`,
    4     `Description`,
    5     `CanceledOn`
    6 from `AlipayPaymentRecord`
    7 where  `CreatedOn`>=?CreatedOn_1;

      4. 单表 M 多条 便捷方法

    1             var date = DateTime.Parse("2018-08-20");
    2 
    3             var res1 = await Conn.QueryListAsync<AlipayPaymentRecord>(it => it.CreatedOn >= date);

        以 MySQL 为例,生成 SQL 如下:

    1 select *
    2 from `AlipayPaymentRecord`
    3 where  `CreatedOn`>=?CreatedOn_1;

    三.API 单表-完整 方法 举例

      1. 单表 单列 多条 完整方法

    1             var res2 = await Conn
    2                 .Queryer<Agent>()
    3                 .Where(it => it.AgentLevel == AgentLevel.DistiAgent)
    4                 .QueryListAsync(it => it.Name);

        以 MySQL 为例,生成 SQL 如下:

    1 select `Name`
    2 from `Agent`
    3 where  `AgentLevel`=?AgentLevel_1;

       2.单表 多列 多条 完整方法

    1             var res5 = await Conn
    2                 .Queryer<Agent>()
    3                 .Where(it => it.AgentLevel == AgentLevel.DistiAgent)
    4                 .QueryListAsync(agent => new AgentVM
    5                 {
    6                     XXXX = agent.Name,
    7                     YYYY = agent.PathId
    8                 });

        以 MySQL 为例,生成 SQL 如下:

    1 select     `Name` as XXXX,
    2     `PathId` as YYYY
    3 from `Agent`
    4 where  `AgentLevel`=?AgentLevel_1;

      3.单表 VM 多条 完整方法

     1             var testQ5 = new WhereTestModel
     2             {
     3                 CreatedOn = DateTime.Now.AddDays(-30),
     4                 StartTime = WhereTest.CreatedOn,
     5                 EndTime = DateTime.Now,
     6                 AgentLevelXX = AgentLevel.DistiAgent,
     7                 ContainStr = "~00-d-3-1-"
     8             };
     9             var res5 = await Conn
    10                 .Queryer<Agent>()
    11                 .Where(it => it.CreatedOn >= testQ5.StartTime)
    12                 .QueryListAsync<AgentVM>();

        以 MySQL 为例,生成 SQL 如下:

    1 select     `Id`,
    2     `CreatedOn`,
    3     `UserId`,
    4     `PathId`,
    5     `Name`,
    6     `Phone`
    7 from `Agent`
    8 where  `CreatedOn`>=?CreatedOn_1;

      4. 单表 M 多条 完整方法

    1             var start = WhereTest.CreatedOn.AddDays(-10);
    2 
    3             var res2 = await Conn
    4                 .Queryer<BodyFitRecord>()
    5                 .Where(it => it.CreatedOn >= start)
    6                 .QueryListAsync();

        以 MySQL 为例,生成 SQL 如下:

    1 select *
    2 from `BodyFitRecord`
    3 where  `CreatedOn`>=?CreatedOn_1;

    四.API 多表连接-完整 方法 举例

      1.多表连接 单列 多条 完整方法

    1             var res1 = await Conn
    2                 .Queryer(out Agent agent1, out AgentInventoryRecord record1)
    3                 .From(() => agent1)
    4                     .InnerJoin(() => record1)
    5                         .On(() => agent1.Id == record1.AgentId)
    6                 .Where(() => agent1.AgentLevel == AgentLevel.DistiAgent)
    7                 .QueryListAsync(() => agent1.CreatedOn);

        以 MySQL 为例,生成 SQL 如下:

    1 select agent1.`CreatedOn`
    2 from `Agent` as agent1 
    3     inner join AgentInventoryRecord as record1
    4         on agent1.`Id`=record1.`AgentId`
    5 where  agent1.`AgentLevel`=?AgentLevel_4;

      2.多表连接 多列 多条 完整方法

     1             var res12 = await Conn
     2                 .Queryer(out Agent agent12, out AgentInventoryRecord record12)
     3                 .From(() => agent12)
     4                     .InnerJoin(() => record12)
     5                         .On(() => agent12.Id == record12.AgentId)
     6                 .Where(() => record12.CreatedOn >= WhereTest.CreatedOn)
     7                 .QueryListAsync(() => new AgentVM
     8                 {
     9                     nn = agent12.PathId,
    10                     yy = record12.Id,
    11                     xx = agent12.Id,
    12                     zz = agent12.Name,
    13                     mm = record12.LockedCount
    14                 });

        以 MySQL 为例,生成 SQL 如下:

    1 select     agent12.`PathId` as nn,
    2     record12.`Id` as yy,
    3     agent12.`Id` as xx,
    4     agent12.`Name` as zz,
    5     record12.`LockedCount` as mm
    6 from `Agent` as agent12 
    7     inner join AgentInventoryRecord as record12
    8         on agent12.`Id`=record12.`AgentId`
    9 where  record12.`CreatedOn`>=?CreatedOn_4;

      3.多表连接 M 多条 完整方法

    1             var res1 = await Conn
    2                 .Queryer(out Agent agent1, out AgentInventoryRecord record1)
    3                 .From(() => agent1)
    4                     .InnerJoin(() => record1)
    5                         .On(() => agent1.Id == record1.AgentId)
    6                 .Where(() => agent1.CreatedOn >= WhereTest.CreatedOn.AddDays(-60))   
    7                 .QueryListAsync<AgentInventoryRecord>();

        以 MySQL 为例,生成 SQL 如下:

    1 select record1.`*`
    2 from `Agent` as agent1 
    3     inner join AgentInventoryRecord as record1
    4         on agent1.`Id`=record1.`AgentId`
    5 where  agent1.`CreatedOn`>=?CreatedOn_4;

                                             蒙

                                        2018-12-26 15:25 周三

                                        2018-12-30 11:30 周日

                                        2019-04-12 23:29 周五

  • 相关阅读:
    react路由组件&&非路由组件
    react函数式组件(非路由组件)实现路由跳转
    react使用antd组件递归实现左侧菜单导航树
    【LeetCode】65. Valid Number
    【LeetCode】66. Plus One (2 solutions)
    【LeetCode】68. Text Justification
    【LeetCode】69. Sqrt(x) (2 solutions)
    【LeetCode】72. Edit Distance
    【LeetCode】73. Set Matrix Zeroes (2 solutions)
    【LeetCode】76. Minimum Window Substring
  • 原文地址:https://www.cnblogs.com/Meng-NET/p/10179385.html
Copyright © 2011-2022 走看看