当前位置: 移动技术网 > IT编程>开发语言>.net > MyDAL - .ListAsync() 使用

MyDAL - .ListAsync() 使用

2018年12月27日  | 移动技术网IT编程  | 我要评论

英语六级考试真题,曲高和寡的反义词,异世之逍遥小王爷txt

索引:

一.api 列表

  .listasync()

  .listasync<m>()

    如: .listasync<agentinventoryrecord>() , 用于 单表/多表连接 查询. 

  .listasync<vm>()

    如: .listasync<agentvm>() , 用于 单表 查询.

  .listasync<t>(expression<func<m, t>> columnmapfunc)

    如: .listasync(it => it.name) , 用于 单表 单列 查询.

    或者: 

      .listasync(agent => new agentvm
                  {
                      xxxx = agent.name,
                      yyyy = agent.pathid
                  })  , 用于 单表 多列 查询.

  .listasync<t>(expression<func<t>> columnmapfunc)

    如:  .queryer(out agent agent1, out agentinventoryrecord record1)

      ... ...

      .listasync(() => agent1.createdon)   , 用于 多表连接 单列 查询.

    或者: .queryer(out agent agent12, out agentinventoryrecord record12)

        ... ...

       .listasync(() => new agentvm
                  {
                      nn = agent12.pathid,
                      yy = record12.id,
                      xx = agent12.id,
                      zz = agent12.name,
                      mm = record12.lockedcount
                  })  , 用于 多表连接 多列 查询.

二.api 单表-便捷 方法 举例

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

1             var res7 = await conn.listasync<agent, string>(it => it.name.startswith("张"), it => it.name);

    生成的 sql 如下

1 select `name`
2 from `agent`
3 where  `name` like  @name__1;

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

1        var date = datetime.parse("2018-08-20");
2 
3             var res3 = await conn.listasync<alipaypaymentrecord, alipaypaymentrecordvm>(it => it.createdon >= date,
4                 it => new alipaypaymentrecordvm
5                 {
6                     totalamount = it.totalamount,
7                     description = it.description
8                 });

    生成的 sql 如下:

1 select     `totalamount` as totalamount,
2         `description` as description
3 from `alipaypaymentrecord`
4 where  `createdon`>=@createdon__1;

  3. 单表 vm 多条 便捷方法

1             var date = datetime.parse("2018-08-20");
2 
3             var res2 = await conn.listasync<alipaypaymentrecord, alipaypaymentrecordvm>(it => it.createdon >= date);

    生成 sql 如下:

1 select     `id`,
2     `createdon`,
3     `totalamount`,
4     `description`,
5     `canceledon`
6 from `alipaypaymentrecord`
7 where  `createdon`>=@createdon__1;

  4. 单表 m 多条 便捷方法

1             var date = datetime.parse("2018-08-20");
2 
3             var res1 = await conn.listasync<alipaypaymentrecord>(it => it.createdon >= date);

    生成 sql 如下:

1 select *
2 from `alipaypaymentrecord`
3 where  `createdon`>=@createdon__1;

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

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

1             var res2 = await conn
2                 .queryer<agent>()
3                 .where(it => it.agentlevel == agentlevel.distiagent)
4                 .listasync(it => it.name);

    生成 sql 如下:

1 select `name`
2 from `agent`
3 where  `agentlevel`=@agentlevel__1;

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

1             var res5 = await conn
2                 .queryer<agent>()
3                 .where(it => it.agentlevel == agentlevel.distiagent)
4                 .listasync(agent => new agentvm
5                 {
6                     xxxx = agent.name,
7                     yyyy = agent.pathid
8                 });

    生成 sql 如下

1 select     `name` as xxxx,
2     `pathid` as yyyy
3 from `agent`
4 where  `agentlevel`=@agentlevel__1;

  3.单表 vm 多条 完整方法

 1             var testq5 = new wheretestmodel
 2             {
 3                 createdon = datetime.now.adddays(-30),
 4                 starttime = wheretest.createdon,
 5                 endtime = datetime.now,
 6                 agentlevelxx = agentlevel.distiagent,
 7                 containstr = "~00-d-3-1-"
 8             };
 9             var res5 = await conn
10                 .queryer<agent>()
11                 .where(it => it.createdon >= testq5.starttime)
12                 .listasync<agentvm>();

    生成 sql 如下

1 select     `id`,
2     `createdon`,
3     `userid`,
4     `pathid`,
5     `name`,
6     `phone`
7 from `agent`
8 where  `createdon`>=@createdon__1;

  4. 单表 m 多条 完整方法

1             var start = wheretest.createdon.adddays(-10);
2 
3             var res2 = await conn
4                 .queryer<bodyfitrecord>()
5                 .where(it => it.createdon >= start)
6                 .listasync();

    生成 sql 如下:

1 select *
2 from `bodyfitrecord`
3 where  `createdon`>=@createdon__1;

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

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

1             var res1 = await conn
2                 .queryer(out agent agent1, out agentinventoryrecord record1)
3                 .from(() => agent1)
4                     .innerjoin(() => record1)
5                         .on(() => agent1.id == record1.agentid)
6                 .where(() => agent1.agentlevel == agentlevel.distiagent)
7                 .listasync(() => agent1.createdon);

    生成 sql 如下

1 select agent1.`createdon`
2 from `agent` as agent1 
3     inner join agentinventoryrecord as record1
4         on agent1.`id`=record1.`agentid`
5 where  agent1.`agentlevel`=@agentlevel__4;

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

 1             var res12 = await conn
 2                 .queryer(out agent agent12, out agentinventoryrecord record12)
 3                 .from(() => agent12)
 4                     .innerjoin(() => record12)
 5                         .on(() => agent12.id == record12.agentid)
 6                 .where(() => record12.createdon >= wheretest.createdon)
 7                 .listasync(() => new agentvm
 8                 {
 9                     nn = agent12.pathid,
10                     yy = record12.id,
11                     xx = agent12.id,
12                     zz = agent12.name,
13                     mm = record12.lockedcount
14                 });

    生成 sql 如下

1 select     agent12.`pathid` as nn,
2     record12.`id` as yy,
3     agent12.`id` as xx,
4     agent12.`name` as zz,
5     record12.`lockedcount` as mm
6 from `agent` as agent12 
7     inner join agentinventoryrecord as record12
8         on agent12.`id`=record12.`agentid`
9 where  record12.`createdon`>=@createdon__4;

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

1             var res1 = await conn
2                 .queryer(out agent agent1, out agentinventoryrecord record1)
3                 .from(() => agent1)
4                     .innerjoin(() => record1)
5                         .on(() => agent1.id == record1.agentid)
6                 .where(() => agent1.createdon >= wheretest.createdon.adddays(-60))   
7                 .listasync<agentinventoryrecord>();

    生成 sql 如下

1 select record1.`*`
2 from `agent` as agent1 
3     inner join agentinventoryrecord as record1
4         on agent1.`id`=record1.`agentid`
5 where  agent1.`createdon`>=@createdon__4;

 

 

 

 

                                         蒙

                                    2018-12-26 15:25 周三

 

如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复

相关文章:

验证码:
移动技术网