索引:

目录索引

一.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. 单表 单列 多条 便捷方法 

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

    以 MySQL 为例,生成 SQL 如下:

 select `Name`
from `Agent`
where `Name` like ?Name_1;

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

        var date = DateTime.Parse("2018-08-20");

             var res3 = await Conn.QueryListAsync<AlipayPaymentRecord, AlipayPaymentRecordVM>(it => it.CreatedOn >= date,
it => new AlipayPaymentRecordVM
{
TotalAmount = it.TotalAmount,
Description = it.Description
});

    以 MySQL 为例,生成 SQL 如下:

 select     `TotalAmount` as TotalAmount,
    `Description` as Description
from `AlipayPaymentRecord`
where `CreatedOn`>=?CreatedOn_1;

  3. 单表 VM 多条 便捷方法

             var date = DateTime.Parse("2018-08-20");

             var res2 = await Conn.QueryListAsync<AlipayPaymentRecord, AlipayPaymentRecordVM>(it => it.CreatedOn >= date);

    以 MySQL 为例,生成 SQL 如下:

 select     `Id`,
`CreatedOn`,
`TotalAmount`,
`Description`,
`CanceledOn`
from `AlipayPaymentRecord`
where `CreatedOn`>=?CreatedOn_1;

  4. 单表 M 多条 便捷方法

             var date = DateTime.Parse("2018-08-20");

             var res1 = await Conn.QueryListAsync<AlipayPaymentRecord>(it => it.CreatedOn >= date);

    以 MySQL 为例,生成 SQL 如下:

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

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

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

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

    以 MySQL 为例,生成 SQL 如下:

 select `Name`
from `Agent`
where `AgentLevel`=?AgentLevel_1;

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

             var res5 = await Conn
.Queryer<Agent>()
.Where(it => it.AgentLevel == AgentLevel.DistiAgent)
.QueryListAsync(agent => new AgentVM
{
XXXX = agent.Name,
YYYY = agent.PathId
});

    以 MySQL 为例,生成 SQL 如下:

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

  3.单表 VM 多条 完整方法

             var testQ5 = new WhereTestModel
{
CreatedOn = DateTime.Now.AddDays(-),
StartTime = WhereTest.CreatedOn,
EndTime = DateTime.Now,
AgentLevelXX = AgentLevel.DistiAgent,
ContainStr = "~00-d-3-1-"
};
var res5 = await Conn
.Queryer<Agent>()
.Where(it => it.CreatedOn >= testQ5.StartTime)
.QueryListAsync<AgentVM>();

    以 MySQL 为例,生成 SQL 如下:

 select     `Id`,
`CreatedOn`,
`UserId`,
`PathId`,
`Name`,
`Phone`
from `Agent`
where `CreatedOn`>=?CreatedOn_1;

  4. 单表 M 多条 完整方法

             var start = WhereTest.CreatedOn.AddDays(-);

             var res2 = await Conn
.Queryer<BodyFitRecord>()
.Where(it => it.CreatedOn >= start)
.QueryListAsync();

    以 MySQL 为例,生成 SQL 如下:

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

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

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

             var res1 = await Conn
.Queryer(out Agent agent1, out AgentInventoryRecord record1)
.From(() => agent1)
.InnerJoin(() => record1)
.On(() => agent1.Id == record1.AgentId)
.Where(() => agent1.AgentLevel == AgentLevel.DistiAgent)
.QueryListAsync(() => agent1.CreatedOn);

    以 MySQL 为例,生成 SQL 如下:

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

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

             var res12 = await Conn
.Queryer(out Agent agent12, out AgentInventoryRecord record12)
.From(() => agent12)
.InnerJoin(() => record12)
.On(() => agent12.Id == record12.AgentId)
.Where(() => record12.CreatedOn >= WhereTest.CreatedOn)
.QueryListAsync(() => new AgentVM
{
nn = agent12.PathId,
yy = record12.Id,
xx = agent12.Id,
zz = agent12.Name,
mm = record12.LockedCount
});

    以 MySQL 为例,生成 SQL 如下:

 select     agent12.`PathId` as nn,
record12.`Id` as yy,
agent12.`Id` as xx,
agent12.`Name` as zz,
record12.`LockedCount` as mm
from `Agent` as agent12
inner join AgentInventoryRecord as record12
on agent12.`Id`=record12.`AgentId`
where record12.`CreatedOn`>=?CreatedOn_4;

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

             var res1 = await Conn
.Queryer(out Agent agent1, out AgentInventoryRecord record1)
.From(() => agent1)
.InnerJoin(() => record1)
.On(() => agent1.Id == record1.AgentId)
.Where(() => agent1.CreatedOn >= WhereTest.CreatedOn.AddDays(-))
.QueryListAsync<AgentInventoryRecord>();

    以 MySQL 为例,生成 SQL 如下:

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

                                         蒙

                                    2018-12-26 15:25 周三

                                    2018-12-30 11:30 周日

                                    2019-04-12 23:29 周五

MyDAL - .QueryListAsync() 使用的更多相关文章

  1. MyDAL - 快速使用

    索引: 目录索引 一.安装 在 VS 中执行一下 package 命令: PM> Install-Package MyDAL 二.API-快速使用 1.命名空间,只需: using MyDAL; ...

  2. MyDAL - .Where() 之 .WhereSegment 根据条件 动态设置 Select查询条件 使用

    索引: 目录索引 一.API 列表 1.WhereSegment 属性,指示 根据条件 动态拼接 where 查询过滤条件 见如下示例. 二.API 单表-完整 方法 举例 // 上下文条件 变量 v ...

  3. MyDAL - 引用类型对象 .DeepClone() 深度克隆[深度复制] 工具 使用

    索引: 目录索引 一.API 列表 .DeepClone() 用于 Model / Entity / ... ... 等引用类型对象的深度克隆 特性说明 1.不需要对对象做任何特殊处理,直接 .Dee ...

  4. MyDAL - in && not in 条件 使用

    索引: 目录索引 一.API 列表 C# 代码中 接口 IList.Contains() 方法生成 SQL 对应的 in(val1,val2,... ...) 如:.Queryer<Agent& ...

  5. MyDAL - like && not like 条件 使用

    索引: 目录索引 一.API 列表 C# 代码中 String.Contains("conditionStr") 生成 SQL 对应的 like '%conditionStr%' ...

  6. MyDAL - 组件适用范围说明

    索引: 目录索引 一.组件特性简介: 1.MSIL 底层代码采用 System.Reflection.Emit.Lightweight 类库使用 IL 的方式处理 Model 组装,性能刚刚的~ 2. ...

  7. MyDAL - is null && is not null 条件 使用

    索引: 目录索引 一.API 列表 C# 代码中 instance.property == null 生成 SQL 对应的 is null : 如:.Queryer<Agent>() .. ...

  8. MyDAL - .Where() & .And() & .Or() 使用

    索引: 目录索引 一.API 列表 1.Where .Where(Func<M, bool> func) 如: .Where( it => (it.Prop1>=条件1 &am ...

  9. MyDAL - .OpenDebug() 与 Visual Studio 输出窗口 使用

    索引: 目录索引 SQL Debug 信息说明 一. 对 XConnection 对象 未开启 OpenDebug, 在 VS  状态下,将默认在 VS 窗口 打印出 参数化的 SQL 执行语句: 新 ...

随机推荐

  1. 简述private,protected,public,internal修饰符的访问权限

    private:私有成员,在类的内部才可以访问 protected:保护成员,在类的内部和继承类中可以访问 public:公共成员,完全公开,没有访问限制 internal:当前程序集内可以访问

  2. openlayers4 入门开发系列之地图空间查询篇(附源码下载)

    前言 openlayers4 官网的 api 文档介绍地址 openlayers4 api,里面详细的介绍 openlayers4 各个类的介绍,还有就是在线例子:openlayers4 官网在线例子 ...

  3. [ArcGIS API for JavaScript 4.8] Sample Code-Get Started-MapView,SceneView简介

    [官方文档:https://developers.arcgis.com/javascript/latest/sample-code/index.html]  一.Intro to MapView(2D ...

  4. Git思维导图

    EBay全程问了我关于Git的原理, 各种命令行:平常依赖Idea的图形化太严重了,今天仔细总结一下常用的工具:   Git学习的链接: https://book.git-scm.com/ http: ...

  5. HNOI2019 苟命记

    Day0 瞎看了看博客,然后看了看wf题,看了一下午柯南剧场版... 后来发现,复习根本没用,因为我根本没学过. Day1 首先随便看了看三道题,觉得 \(T1\) 挺可做的,\(T2\) 看起来是什 ...

  6. 还在用NuGet吗?大哥FuGet了解一下

    前言 你可能不知道是,NuGet已经发布10年了,从 Visual Studio 2010 第一次官方集成NuGet以来,这10年间有聚集了超过 14万 的包,这些包有超过 150万 的版本提供,大约 ...

  7. Java核心技术第八章——泛型程序设计(1)

    1.泛型程序设计 泛型程序设计意味着编写的代码可以被很多不同类型的对象所重用.例如:不希望为了聚集String和Integer对象分别设计不同的类.(个人觉得此处说的聚集译为:创建一个对象,属性可以为 ...

  8. python脚本简化jar操作命令

    本篇和大家分享的是使用python简化对jar包操作命令,封装成简短关键字或词,达到操作简便的目的.最近在回顾和构思shell脚本工具,后面一些文章应该会分享shell内容,希望大家继续关注. 获取磁 ...

  9. Redis in .NET Core 入门:(1) 安装和主要功能简介

    Redis(https://redis.io/), 是一个内存中的数据结构存储系统,它可以用作数据库.缓存和消息中间件. 安装Redis 我很少在开发机中直接装各种数据库,我一般使用Docker,针对 ...

  10. 混淆矩阵、准确率、精确率/查准率、召回率/查全率、F1值、ROC曲线的AUC值

    准确率.精确率(查准率).召回率(查全率).F1值.ROC曲线的AUC值,都可以作为评价一个机器学习模型好坏的指标(evaluation metrics),而这些评价指标直接或间接都与混淆矩阵有关,前 ...