欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

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

程序员文章站 2022-07-11 09:11:40
索引: 目录索引 SQL Debug 信息说明 一. 对 XConnection 对象 未开启 OpenDebug, 在 VS 状态下,将默认在 VS 窗口 打印出 参数化的 SQL 执行语句: 新增: 以 MySQL 为例,生成 参数化 SQL ,在 VS 输出窗口 如下: 删除: 以 MySQL ......

索引:

目录索引

sql debug 信息说明

一. 对 xconnection 对象 未开启 opendebug, 在 vs MyDAL - .OpenDebug() 与 Visual Studio 输出窗口 使用 状态下,将默认在 vs MyDAL - .OpenDebug() 与 Visual Studio 输出窗口 使用 窗口 打印出 参数化的 sql 执行语句:

    新增:

1             var m1 = new bodyfitrecord
2             {
3                 id = guid.parse("1fbd8a41-c75b-45c0-9186-016544284e2e"),
4                 createdon = datetime.now,
5                 userid = guid.newguid(),
6                 bodymeasureproperty = "{xxx:yyy,mmm:nnn}"
7             };
8 
9             var res1 = await conn.createasync(m1);

    以 mysql 为例,生成 参数化 sql ,在 vs 输出窗口 如下:

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

     删除:

1             var res2 = await conn
2                 .deleter<bodyfitrecord>()
3                 .where(it => it.id == guid.parse("1fbd8a41-c75b-45c0-9186-016544284e2e"))
4                 .deleteasync();

    以 mysql 为例,生成 参数化 sql ,在 vs 输出窗口 如下:

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

     修改:

 1  var pk1 = guid.parse("8f2cbb64-8356-4482-88ee-016558c05b2d");
 2 
 3  var model = new alipaypaymentrecord();
 4  model.description = "new desc";   // 修改 alipaypaymentrecord 字段 description 的值为: "new desc"
 5  model.paymenturl = "new url";  //  修改 alipaypaymentrecord 字段 paymenturl 的值为: "new url"
 6 
 7  // 修改一条数据: alipaypaymentrecord
 8  var res1 = await conn.updateasync<alipaypaymentrecord>(it => it.id == pk1, //where条件:it=>it.id==pk1,可输入任意条件的表达式
 9  new
10  {
11      model.description,    // 修改 alipaypaymentrecord 字段 description 的值
12      model.paymenturl    //  修改 alipaypaymentrecord 字段 paymenturl 的值
13    });

    以 mysql 为例,生成 参数化 sql ,在 vs 输出窗口 如下:

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

     查询:

1             var res1 = await conn
2                 .queryer(out agent agent, out agentinventoryrecord record)
3                 .from(() => agent)
4                     .innerjoin(() => record)
5                         .on(() => agent.id == record.agentid)
6                 .querypagingasync(1, 10, () => agent.name);

    以 mysql 为例,生成 参数化 sql ,在 vs 输出窗口 如下:

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

二. 对 xconnection 对象 开启 opendebug, 在 vs MyDAL - .OpenDebug() 与 Visual Studio 输出窗口 使用 状态下,将在 vs MyDAL - .OpenDebug() 与 Visual Studio 输出窗口 使用 窗口 打印出 非参数化的 sql 执行语句:

     新增:

 1             var list = new list<addressinfo>();
 2             for (var i = 0; i < 10; i++)
 3             {
 4                 if (i % 2 == 0)
 5                 {
 6                     list.add(new addressinfo
 7                     {
 8                         id = guid.newguid(),
 9                         createdon = datetime.now,
10                         contactname = "name_" + i.tostring(),
11                         contactphone = "1800000000" + i.tostring(),
12                         detailaddress = "address_" + i.tostring(),
13                         isdefault = true,   // f:bool c:bit(1)
14                         userid = guid.newguid()
15                     });
16                 }
17                 else
18                 {
19                     list.add(new addressinfo
20                     {
21                         id = guid.newguid(),
22                         createdon = datetime.now,
23                         contactname = "name_" + i.tostring(),
24                         contactphone = "1800000000" + i.tostring(),
25                         detailaddress = "address_" + i.tostring(),
26                         isdefault = false,   // f:bool c:bit(1)
27                         userid = guid.newguid()
28                     });
29                 }
30             }
31 
32             var res1 = await conn2.opendebug().createbatchasync(list);

    以 sql server 为例,生成 非参数化 sql ,在 vs 输出窗口 如下:

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

    删除:

1             var res2 = await conn.opendebug()
2                 .deleter<agent>()
3                 .where(it => it.pathid == path)
4                 .or(it => it.agentlevel == (agentlevel)level)
5                 .deleteasync();

    以 mysql 为例,生成 非参数化 sql ,在 vs 输出窗口 如下:

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

    修改:

1             // 多 字段 多 set 用法
2             var res1 = await conn.opendebug()
3                 .updater<bodyfitrecord>()  // 更新表 bodyfitrecord 
4                 .set(it => it.createdon, datetime.now)    //  设置字段 createdon 值
5                 .set(it => it.bodymeasureproperty, "{xxx:yyy,mmm:nnn,zzz:aaa}")  //  设置字段 bodymeasureproperty 值
6                 .where(it => it.id == m.id)
7                 .updateasync();

    以 mysql 为例,生成 非参数化 sql ,在 vs 输出窗口 如下: 

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

     查询:

1             var res5 = await conn.opendebug()
2                 .queryer(out agent agent5, out agentinventoryrecord record5)
3                 .from(() => agent5)
4                     .innerjoin(() => record5)
5                         .on(() => agent5.id == record5.agentid)
6                 .where(() => agent5.agentlevel == agentlevel.distiagent)    //  const  enum  ==
7                 .querylistasync<agentinventoryrecord>();

    以 mysql 为例,生成 非参数化 sql ,在 vs 输出窗口 如下: 

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

三. 其它情况 说明:

  a.在 vs MyDAL - .OpenDebug() 与 Visual Studio 输出窗口 使用 状态下,无论你是否打开 .opendebug(),都不会在 MyDAL - .OpenDebug() 与 Visual Studio 输出窗口 使用 窗口 输出 sql 语句

  b..opendebug() 方法 有一个 debugenum 可选枚举参数,默认输出到 vs 输出窗口,当指定 debugenum.console 时,

    会输出到 控制台 窗口,这时 在控制台窗口 无论程序是 debug 还是 release 状态运行 都会打印出 非参数化 sql 语句。

 

 

 

 

 

                                         蒙

                                    2019-05-20 17:19 周一