MyDAL - .OpenDebug() 与 Visual Studio 输出窗口 使用
索引:
SQL Debug 信息说明
一. 对 XConnection 对象 未开启 OpenDebug, 在 VS
状态下,将默认在 VS
窗口 打印出 参数化的 SQL 执行语句:
新增:
var m1 = new BodyFitRecord
{
Id = Guid.Parse("1fbd8a41-c75b-45c0-9186-016544284e2e"),
CreatedOn = DateTime.Now,
UserId = Guid.NewGuid(),
BodyMeasureProperty = "{xxx:yyy,mmm:nnn}"
}; var res1 = await Conn.CreateAsync(m1);
以 MySQL 为例,生成 参数化 SQL ,在 VS 输出窗口 如下:

删除:
var res2 = await Conn
.Deleter<BodyFitRecord>()
.Where(it => it.Id == Guid.Parse("1fbd8a41-c75b-45c0-9186-016544284e2e"))
.DeleteAsync();
以 MySQL 为例,生成 参数化 SQL ,在 VS 输出窗口 如下:

修改:
var pk1 = Guid.Parse("8f2cbb64-8356-4482-88ee-016558c05b2d");
var model = new AlipayPaymentRecord();
model.Description = "new desc"; // 修改 AlipayPaymentRecord 字段 Description 的值为: "new desc"
model.PaymentUrl = "new url"; // 修改 AlipayPaymentRecord 字段 PaymentUrl 的值为: "new url"
// 修改一条数据: AlipayPaymentRecord
var res1 = await Conn.UpdateAsync<AlipayPaymentRecord>(it => it.Id == pk1, //where条件:it=>it.Id==pk1,可输入任意条件的表达式
new
{
model.Description, // 修改 AlipayPaymentRecord 字段 Description 的值
model.PaymentUrl // 修改 AlipayPaymentRecord 字段 PaymentUrl 的值
});
以 MySQL 为例,生成 参数化 SQL ,在 VS 输出窗口 如下:

查询:
var res1 = await Conn
.Queryer(out Agent agent, out AgentInventoryRecord record)
.From(() => agent)
.InnerJoin(() => record)
.On(() => agent.Id == record.AgentId)
.QueryPagingAsync(, , () => agent.Name);
以 MySQL 为例,生成 参数化 SQL ,在 VS 输出窗口 如下:

二. 对 XConnection 对象 开启 OpenDebug, 在 VS
状态下,将在 VS
窗口 打印出 非参数化的 SQL 执行语句:
新增:
var list = new List<AddressInfo>();
for (var i = ; i < ; i++)
{
if (i % == )
{
list.Add(new AddressInfo
{
Id = Guid.NewGuid(),
CreatedOn = DateTime.Now,
ContactName = "Name_" + i.ToString(),
ContactPhone = "" + i.ToString(),
DetailAddress = "Address_" + i.ToString(),
IsDefault = true, // f:bool c:bit(1)
UserId = Guid.NewGuid()
});
}
else
{
list.Add(new AddressInfo
{
Id = Guid.NewGuid(),
CreatedOn = DateTime.Now,
ContactName = "Name_" + i.ToString(),
ContactPhone = "" + i.ToString(),
DetailAddress = "Address_" + i.ToString(),
IsDefault = false, // f:bool c:bit(1)
UserId = Guid.NewGuid()
});
}
} var res1 = await Conn2.OpenDebug().CreateBatchAsync(list);
以 Sql Server 为例,生成 非参数化 SQL ,在 VS 输出窗口 如下:

删除:
var res2 = await Conn.OpenDebug()
.Deleter<Agent>()
.Where(it => it.PathId == path)
.Or(it => it.AgentLevel == (AgentLevel)level)
.DeleteAsync();
以 MySQL 为例,生成 非参数化 SQL ,在 VS 输出窗口 如下:

修改:
// 多 字段 多 set 用法
var res1 = await Conn.OpenDebug()
.Updater<BodyFitRecord>() // 更新表 BodyFitRecord
.Set(it => it.CreatedOn, DateTime.Now) // 设置字段 CreatedOn 值
.Set(it => it.BodyMeasureProperty, "{xxx:yyy,mmm:nnn,zzz:aaa}") // 设置字段 BodyMeasureProperty 值
.Where(it => it.Id == m.Id)
.UpdateAsync();
以 MySQL 为例,生成 非参数化 SQL ,在 VS 输出窗口 如下:

查询:
var res5 = await Conn.OpenDebug()
.Queryer(out Agent agent5, out AgentInventoryRecord record5)
.From(() => agent5)
.InnerJoin(() => record5)
.On(() => agent5.Id == record5.AgentId)
.Where(() => agent5.AgentLevel == AgentLevel.DistiAgent) // const enum ==
.QueryListAsync<AgentInventoryRecord>();
以 MySQL 为例,生成 非参数化 SQL ,在 VS 输出窗口 如下:

三. 其它情况 说明:
a.在 VS
状态下,无论你是否打开 .OpenDebug(),都不会在
窗口 输出 sql 语句
b..OpenDebug() 方法 有一个 DebugEnum 可选枚举参数,默认输出到 VS 输出窗口,当指定 DebugEnum.Console 时,
会输出到 控制台 窗口,这时 在控制台窗口 无论程序是 debug 还是 release 状态运行 都会打印出 非参数化 sql 语句。
蒙
2019-05-20 17:19 周一
MyDAL - .OpenDebug() 与 Visual Studio 输出窗口 使用的更多相关文章
- web项目 在visual studio 输出窗口显示调试信息
//始终显示 Trace.WriteLine(“要显示的调试信息”); //调试时显示 Debug.WriteLine(“要显示的调试信息”);
- Visual Studio 重置窗口布局
Visual Studio 重置窗口布局
- Visual Studio命令窗口
命令”窗口用于直接在 Visual Studio 集成开发环境 (IDE) 中执行命令或别名.可以执行菜单命令和不在任何菜单上显示的命令.若要显示“命令”窗口,请从“视图”菜单中选择“其他窗口”,再选 ...
- Visual Studio调试窗口一闪而过的解决方法
小编在用vs写程序时,经常碰到调试窗口一闪而过的情况,以至于根本无法查看程序输出结果. 为了解决这个问题,可以在程序的末尾加上一个系统调用语句: int main(){ printf("我不 ...
- 安装Visual Studio 时窗口闪过就退出
双击安装文件,窗口闪了下就退出了. 解决方法:控制面板 ———程序——程序和功能——打开或关闭Windows功能——关闭NET相关框架. 然后再次安装即可. 参考文献: VS安装程序一闪而过
- visual studio 编辑窗口 设置固定选项卡 使窗口选项卡多行显示
工具>选项> 确定后 如图就可以多行显示了.
- 如何:使用 Visual Studio 中的一键式发布来部署 Web 应用程序项目
原文: 如何:使用 Visual Studio 中的一键式发布来部署 Web 应用程序项目 本主题介绍如何在以下产品中使用 一键式发布 发布(部署)Web 应用程序项目: Visual Studio ...
- 教程:在 Visual Studio 中开始使用 Flask Web 框架
教程:在 Visual Studio 中开始使用 Flask Web 框架 Flask 是一种轻量级 Web 应用程序 Python 框架,为 URL 路由和页面呈现提供基础知识. Flask 被称为 ...
- 教程:Visual Studio 中的 Django Web 框架入门
教程:Visual Studio 中的 Django Web 框架入门 Django 是高级 Python 框架,用于快速.安全及可扩展的 Web 开发. 本教程将在 Visual Studio 提供 ...
随机推荐
- python基础语法20 面向对象5 exec内置函数的补充,元类,属性查找顺序
exec内置函数的补充 exec: 是一个python内置函数,可以将字符串的代码添加到名称空间中; - 全局名称空间 - 局部名称空间 exec(字符串形式的代码, 全局名称空间, 局部名称空间) ...
- MyBatis 插入记录同时获取主键
MyBatis 插入记录同时获取主键 MyBatis 插入记录同时获取主键的系统界面 useGeneratedKeys 属性 keyProperty 属性 keyColumn 属性 selectKey ...
- 【Spring Data JPA篇】项目环境搭建(一)
项目环境: spring4.1.6 hibernate4.3.11 spring-data-jpa1.9.0 1. 创建一个Java Project,将jar导入到lib目录下 #spring spr ...
- mariadb指定10.2版本安装及修改默认端口
原文链接: https://www.cnblogs.com/operationhome/p/9141881.html 延申, mongodb, mariadb: https://www.cnblog ...
- [LeetCode] 888. Fair Candy Swap 公平糖果交换
Alice and Bob have candy bars of different sizes: A[i] is the size of the i-th bar of candy that Ali ...
- [LeetCode] 227. Basic Calculator II 基本计算器之二
Implement a basic calculator to evaluate a simple expression string. The expression string contains ...
- twig输出转义
twig输出转义--需求:传一个变量到 twig 中,需要插入几个空格,类似于下面这样:sprintf("%s%s -- %s", str_repeat(' ', $path_le ...
- VIPKID:笔试题(数组中和为0的一对数的数量,十进制转二进制中1的个数)
1. 求数组中的和为0 的一对数的数量 注意,需要用到set import java.util.Scanner; public class Main{ public static void main( ...
- 第27课 “共享状态”及其管理者(std::future/std::shared_future)
一. “共享状态” (一)“共享状态”对象 1. 用于保存线程函数及其参数.返回值以及新线程状态等信息.该对象通常创建在堆上,由std::async.std::promise和std::package ...
- 【操作系统之十三】Netfilter与iptables
一.Netfilter Netfilter是由Rusty Russell提出的Linux 2.4内核防火墙框架,该框架既简洁又灵活,可实现安全策略应用中的许多功能,如数据包过滤.数据包处理.地址伪装. ...