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 提供 ...
随机推荐
- pugixml 读取
xml <?xml version="1.0" encoding="utf-8" ?> <ROOT> <COMPANY>Te ...
- LeetCode 113. Path Sum II路径总和 II (C++)
题目: Given a binary tree and a sum, find all root-to-leaf paths where each path's sum equals the give ...
- JDOJ 2225 工资计划
JDOJ 2225: 工资计划 https://neooj.com/oldoj/problem.php?id=2225 Description 高考结束后,同学们大都找到了一份临时工作,渴望挣得一些零 ...
- Scrapy框架详解
Python网络爬虫Scrapy框架研究 Scrapy1.0教程 Scrapy笔记(1)- 入门篇 Scrapy笔记(2)- 完整示例 Scrapy笔记(3)- Spider详解 Scrapy笔记(4 ...
- win10经常无法复制粘贴
两种方法尝试一下: 1. 在c:\windows\system32 目录下新建文件夹,命名为clip 2. 因为有道词典会监控并占用你的剪贴板,请尝试关闭有道词典的[取词]和[划词]功能,如果还不行就 ...
- js判断超过几个字符后显示省略号
- js对url进行编码的方法(encodeURI和 encodeURICompoent())
encodeURI(): 对整个URL进行编码,对应的解码方式:decodeURI() encodeURIComponent() : 对查询字符串进行编码,对应的解码方式:decodeURICompo ...
- [LeetCode] 390. Elimination Game 淘汰游戏
There is a list of sorted integers from 1 to n. Starting from left to right, remove the first number ...
- [LeetCode] 112. Path Sum 二叉树的路径和
Given a binary tree and a sum, determine if the tree has a root-to-leaf path such that adding up all ...
- Vue.js项目中使用iconfont冲突问题解决
在开发前端项目中,字体图标变得越来越常用.一方面因为它比图片使用起来方便,可以像字体一样修改大小和颜色:另一方面是因为它可以减少请求数量,优化前端性能. iconfont的使用方法很简单,主要由三种引 ...