MyDAL - .QueryOneAsync() 使用
索引:
一.API 列表
.QueryOneAsync()
.QueryOneAsync<M>()
如: .QueryOneAsync<Agent>() , 用于 单表/多表连接 查询.
.QueryOneAsync<VM>()
如: .QueryOneAsync<AgentVM>() , 用于 单表 查询.
.QueryOneAsync<T>(Expression<Func<M, T>> columnMapFunc)
如: .QueryOneAsync<Guid>(it => it.Id) , 用于 单表 单列 查询.
或者:
.QueryOneAsync<AgentVM>(it => new AgentVM
{
XXXX = it.Name,
YYYY = it.PathId
}) , 用于 单表 多列 查询.
.QueryOneAsync<T>(Expression<Func<T>> columnMapFunc)
如: .Queryer(out Agent agent, out AgentInventoryRecord agentRecord)
......
.QueryOneAsync<string>(() => agent.Name)
用于 多表连接 单列 查询.
或者:
.Queryer(out Agent agent2, out AgentInventoryRecord record2)
......
.QueryOneAsync(() => new AgentVM
{
nn = agent2.PathId,
yy = record2.Id,
xx = agent2.Id,
zz = agent2.Name,
mm = record2.LockedCount
}) , 用于 多表连接 多列 查询.
二.API 单表-便捷 方法 举例
1. 单表 单列 便捷方法
var pk = Guid.Parse("8f2cbb64-8356-4482-88ee-016558c05b2d");
var date= DateTime.Parse("2018-08-20 19:12:05.933786");
var res3 = await Conn
5 .QueryOneAsync<AlipayPaymentRecord, Guid>(it => it.Id == pk && it.CreatedOn == date,it=>it.Id);
以 MySQL 为例,生成 SQL 如下:
select `Id`
from `AlipayPaymentRecord`
where ( `Id`=?Id_2 && `CreatedOn`=?CreatedOn_3)
limit 0,1;
2. 单表 多列 便捷方法
var pk = Guid.Parse("8f2cbb64-8356-4482-88ee-016558c05b2d");
var date= DateTime.Parse("2018-08-20 19:12:05.933786");
var res4 = await Conn
.QueryOneAsync<AlipayPaymentRecord, AlipayPaymentRecordVM>(it => it.Id == pk && it.CreatedOn == date,
it => new AlipayPaymentRecordVM
{
Id = it.Id,
TotalAmount = it.TotalAmount,
Description = it.Description
});
以 MySQL 为例,生成 SQL 如下:
select `Id` as Id,
`TotalAmount` as TotalAmount,
`Description` as Description
from `AlipayPaymentRecord`
where ( `Id`=?Id_2 && `CreatedOn`=?CreatedOn_3)
limit 0,1;
3. 单表 单条 VM 便捷方法
var pk = Guid.Parse("8f2cbb64-8356-4482-88ee-016558c05b2d");
var date = DateTime.Parse("2018-08-20 19:12:05.933786");
var res5 = await Conn
5 .QueryOneAsync<AlipayPaymentRecord, AlipayPaymentRecordVM>(it => it.Id == pk && it.CreatedOn == date);
以 MySQL 为例,生成 SQL 如下:
select `Id`,
`CreatedOn`,
`TotalAmount`,
`Description`,
`CanceledOn`
from `AlipayPaymentRecord`
where ( `Id`=?Id_2 && `CreatedOn`=?CreatedOn_3)
limit 0,1;
4. 单表 单条 M 便捷方法
var pk = Guid.Parse("8f2cbb64-8356-4482-88ee-016558c05b2d");
var date = DateTime.Parse("2018-08-20 19:12:05.933786");
var res6 = await Conn
5 .QueryOneAsync<AlipayPaymentRecord>(it => it.Id == pk && it.CreatedOn == date);
以 MySQL 为例,生成 SQL 如下:
select *
from `AlipayPaymentRecord`
where ( `Id`=?Id_2 && `CreatedOn`=?CreatedOn_3)
limit 0,1;
三.API 单表-完整 方法 举例
1. 单表 单列 完整方法
var time1 = DateTime.Parse("2018-08-16 19:22:01.716307");
var res1 = await Conn
.Queryer<Agent>()
.Where(it => it.CreatedOn == time1)
.QueryOneAsync<Guid>(it => it.Id);
以 MySQL 为例,生成 SQL 如下:
select `Id`
from `Agent`
where `CreatedOn`=?CreatedOn_1
limit 0,1;
2.单表 多列 完整方法
var res3 = await Conn
.Queryer<Agent>()
.Where(it => it.Id == Guid.Parse("000c1569-a6f7-4140-89a7-0165443b5a4b"))
.QueryOneAsync<AgentVM>(it => new AgentVM
{
XXXX = it.Name,
YYYY = it.PathId
});
以 MySQL 为例,生成 SQL 如下:
select `Name` as XXXX,
`PathId` as YYYY
from `Agent`
where `Id`=?Id_1
limit 0,1;
3.单表 单条 VM 完整方法
var res1 = await Conn
.Queryer<Agent>()
.Where(it => it.Id == Guid.Parse("000c1569-a6f7-4140-89a7-0165443b5a4b"))
.QueryOneAsync<AgentVM>();
以 MySQL 为例,生成 SQL 如下:
select `Id`,
`CreatedOn`,
`UserId`,
`PathId`,
`Name`,
`Phone`
from `Agent`
where `Id`=?Id_1
limit 0,1;
4.单表 单条 M 完整方法
var res1 = await Conn
.Queryer<BodyFitRecord>()
.Where(it => it.Id == Guid.Parse("1fbd8a41-c75b-45c0-9186-016544284e2e"))
.QueryOneAsync();
以 MySQL 为例,生成 SQL 如下:
select *
from `BodyFitRecord`
where `Id`=?Id_1
limit 0,1;
四.API 多表连接-完整 方法 举例
1.多表连接 单列 完整方法
var res1 = await Conn
.Queryer(out Agent agent, out AgentInventoryRecord agentRecord)
.From(() => agent)
.InnerJoin(() => agentRecord)
.On(() => agent.Id == agentRecord.AgentId)
.Where(() => agent.AgentLevel == AgentLevel.DistiAgent)
.QueryOneAsync<string>(() => agent.Name);
以 MySQL 为例,生成 SQL 如下:
select agent.`Name`
from `Agent` as agent
inner join AgentInventoryRecord as agentRecord
on agent.`Id`=agentRecord.`AgentId`
where agent.`AgentLevel`=?AgentLevel_4
limit 0,1;
2.多表连接 多列 完整方法
var guid2 = Guid.Parse("544b9053-322e-4857-89a0-0165443dcbef");
var res2 = await Conn
.Queryer(out Agent agent2, out AgentInventoryRecord record2)
.From(() => agent2)
.InnerJoin(() => record2)
.On(() => agent2.Id == record2.AgentId)
.Where(() => agent2.Id == guid2)
.QueryOneAsync(() => new AgentVM
{
nn = agent2.PathId,
yy = record2.Id,
xx = agent2.Id,
zz = agent2.Name,
mm = record2.LockedCount
});
以 MySQL 为例,生成 SQL 如下:
select agent2.`PathId` as nn,
record2.`Id` as yy,
agent2.`Id` as xx,
agent2.`Name` as zz,
record2.`LockedCount` as mm
from `Agent` as agent2
inner join AgentInventoryRecord as record2
on agent2.`Id`=record2.`AgentId`
where agent2.`Id`=?Id_4
limit 0,1;
3.多表连接 单条 M 完整方法
var guid6 = Guid.Parse("544b9053-322e-4857-89a0-0165443dcbef");
var res6 = await Conn
.Queryer(out Agent agent6, out AgentInventoryRecord record6)
.From(() => agent6)
.InnerJoin(() => record6)
.On(() => agent6.Id == record6.AgentId)
.Where(() => agent6.Id == guid6)
.QueryOneAsync<Agent>();
以 MySQL 为例,生成 SQL 如下:
select agent6.`*`
from `Agent` as agent6
inner join AgentInventoryRecord as record6
on agent6.`Id`=record6.`AgentId`
where agent6.`Id`=?Id_4
limit 0,1;
蒙
2018-12-13 14:35 周四
2018-12-30 11:25 周日
2019-02-24 17:03 周日
2019-04-12 19:32 周五
MyDAL - .QueryOneAsync() 使用的更多相关文章
- MyDAL - 快速使用
索引: 目录索引 一.安装 在 VS 中执行一下 package 命令: PM> Install-Package MyDAL 二.API-快速使用 1.命名空间,只需: using MyDAL; ...
- MyDAL - 引用类型对象 .DeepClone() 深度克隆[深度复制] 工具 使用
索引: 目录索引 一.API 列表 .DeepClone() 用于 Model / Entity / ... ... 等引用类型对象的深度克隆 特性说明 1.不需要对对象做任何特殊处理,直接 .Dee ...
- MyDAL - 组件适用范围说明
索引: 目录索引 一.组件特性简介: 1.MSIL 底层代码采用 System.Reflection.Emit.Lightweight 类库使用 IL 的方式处理 Model 组装,性能刚刚的~ 2. ...
- MyDAL - .Where() & .And() & .Or() 使用
索引: 目录索引 一.API 列表 1.Where .Where(Func<M, bool> func) 如: .Where( it => (it.Prop1>=条件1 &am ...
- MyDAL - .Where() 之 .WhereSegment 根据条件 动态设置 Select查询条件 使用
索引: 目录索引 一.API 列表 1.WhereSegment 属性,指示 根据条件 动态拼接 where 查询过滤条件 见如下示例. 二.API 单表-完整 方法 举例 // 上下文条件 变量 v ...
- MyDAL - .UpdateAsync() 之 .SetSegment 根据条件 动态设置 要更新的字段 使用
索引: 目录索引 一.API 列表 1.SetSegment 属性,指示 根据条件 动态拼接 要修改的字段 见如下示例. 二.API 单表-完整 方法 举例 // update 要赋值的变量 var ...
- MyDAL - .UpdateAsync() 之 .Set() 使用
索引: 目录索引 一.API 列表 1.Set<M, F>(Expression<Func<M, F>> propertyFunc, F newVal) 如: .S ...
- MyDAL - .UpdateAsync() 使用
索引: 目录索引 一.API 列表 1.UpdateAsync() 用于 单表 更新操作 二.API 单表-便捷 方法 举例-01 var pk1 = Guid.Parse("8f2cbb6 ...
- MyDAL - in && not in 条件 使用
索引: 目录索引 一.API 列表 C# 代码中 接口 IList.Contains() 方法生成 SQL 对应的 in(val1,val2,... ...) 如:.Queryer<Agent& ...
随机推荐
- box-shadow内阴影、外阴影
外阴影: box-shadow:X轴 Y轴 Rpx color; 属性说明(顺序依次对应):阴影的X轴(可以使用负值) 阴影的Y轴(可以使用负值) 阴影模糊值(大小) 阴影的颜色 内阴影: bo ...
- v4v7升级到androidx过程
因为原项目应用的都是v4v7包,谷歌改成androidx后就升级了一番,首先在properties文件 然后在菜单里点击升级,studio会帮你把报名什么的都改掉 打开项目,发现都自动改掉了,完美,然 ...
- goldengate同源一目标+多表和同源多目标+多表
小结一下,永记心中!几经修改,看见完美曾经遇到的问题或值得注意的地方,就此记录一下,以免再犯开始...******************同源一目标+多表******************针对部分表 ...
- 解决Maven无法下载fastdfs-client-java依赖,Dependency 'org.csource:fastdfs-client-java:1.27-SNAPSHOT' not found.
因为fastdfs-client-java-1.27-SNAPSHOT.jar这个依赖包在maven中央仓库是没有的, 需要自己编译源码成jar本地安装到maven 的本地仓库,安装完以后就能正常引用 ...
- erlang 删除老版本 安装新版本
[root@izbp1buyhgwtrvlxv3u2gqz ~]# yum remove erlang-erts-R16B-03.18.el7.x86_64Loaded plugins: fastes ...
- Java相关资料分享(视频+电子书籍)
正所谓“授人以鱼不如授人以渔”,你们想要的Java学习资料来啦!不管你是学生,还是已经步入职场的同行,希望你们都要珍惜眼前的学习机会,奋斗没有终点,知识永不过时. 关注底下的公众号,获取百度网盘提取码 ...
- Javascript高级编程学习笔记(97)—— WebGL(3) WebGL上下文(1)
WebGL上下文 在支持WebGL的浏览器中,WebGL的名字为 "experimental-webgl",这是由于 webgl 的规范仍未制定完成 制定完成后名字就会改为简单的 ...
- Ubuntu 安装yii2 advanced版 遇到的坑
1.安装 Composer https://www.yiichina.com/doc/guide/2.0/start-installation通过 Composer 安装 curl -sS https ...
- WebPack引用Bootstrap 无法使用图标的结局方案
npm i https://github.com/iconic/open-iconic.git -D 因为boostrap的css里删除了图标 分开了 我们在引入个呵呵. 下载:npm i boot ...
- 《深入理解Java虚拟机》-----第4章 虚拟机性能监控与故障处理工具
理论总是作为指导实践的工具,能把这些知识应用到实际工作中才是 我们的最终目的. 给一个系统定位问题的时候,知识.经验是关键基础,数据是依据,工具是运用知识处理数据的手段.这里说的数据包括:运行日志.异 ...