Dapper扩展之~~~Dapper.Contrib

平台之大势何人能挡? 带着你的Net飞奔吧!http://www.cnblogs.com/dunitian/p/4822808.html#skill

上一篇文章:Dapper逆天入门~强类型,动态类型,多映射,多返回值,增删改查+存储过程+事物案例演示

 官方地址:https://github.com/StackExchange/dapper-dot-net/tree/master/Dapper.Contrib

实战案例:https://github.com/dunitian/LoTCode/tree/master/PawChina(更新ing)

注意点:Model里面的Table和Key是Dapper.Contrib.Extensions命名空间下的~~~~如果不是~~请看下篇文章(点我

 

用法很简单,贴一下帮助类:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
/// <summary>
     /// 扩展方法
     /// </summary>
     public  abstract  partial  class  DapperDataAsync
     {
         #region 查询系
         /// <summary>
         /// 获取Model-Key为int类型
         /// </summary>
         /// <typeparam name="T"></typeparam>
         /// <param name="id"></param>
         /// <param name="transaction"></param>
         /// <param name="commandTimeout"></param>
         /// <returns></returns>
         public  static  async Task<T> GetAsync<T>( int  id, IDbTransaction transaction =  null int ? commandTimeout =  null where  T :  class new ()
         {
             using  ( var  conn = ConnFactory.GetConnection())
             {
                 return  await conn.GetAsync<T>(id, transaction, commandTimeout);
             }
         }
         /// <summary>
         /// 获取Model-Key为long类型
         /// </summary>
         /// <typeparam name="T"></typeparam>
         /// <param name="id"></param>
         /// <param name="transaction"></param>
         /// <param name="commandTimeout"></param>
         /// <returns></returns>
         public  static  async Task<T> GetAsync<T>( long  id, IDbTransaction transaction =  null int ? commandTimeout =  null where  T :  class new ()
         {
             using  ( var  conn = ConnFactory.GetConnection())
             {
                 return  await conn.GetAsync<T>(id, transaction, commandTimeout);
             }
         }
         /// <summary>
         /// 获取Model-Key为Guid类型
         /// </summary>
         /// <typeparam name="T"></typeparam>
         /// <param name="id"></param>
         /// <param name="transaction"></param>
         /// <param name="commandTimeout"></param>
         /// <returns></returns>
         public  static  async Task<T> GetAsync<T>(System.Guid id, IDbTransaction transaction =  null int ? commandTimeout =  null where  T :  class new ()
         {
             using  ( var  conn = ConnFactory.GetConnection())
             {
                 return  await conn.GetAsync<T>(id, transaction, commandTimeout);
             }
         }
         /// <summary>
         /// 获取Model-Key为string类型
         /// </summary>
         /// <typeparam name="T"></typeparam>
         /// <param name="id"></param>
         /// <param name="transaction"></param>
         /// <param name="commandTimeout"></param>
         /// <returns></returns>
         public  static  async Task<T> GetAsync<T>( string  id, IDbTransaction transaction =  null int ? commandTimeout =  null where  T :  class new ()
         {
             using  ( var  conn = ConnFactory.GetConnection())
             {
                 return  await conn.GetAsync<T>(id, transaction, commandTimeout);
             }
         }
         /// <summary>
         /// 获取Model集合(没有Where条件)
         /// </summary>
         /// <typeparam name="T"></typeparam>
         /// <returns></returns>
         public  static  async Task<IEnumerable<T>> GetAllAsync<T>()  where  T :  class new ()
         {
             using  ( var  conn = ConnFactory.GetConnection())
             {
                 return  await conn.GetAllAsync<T>();
             }
         }
         #endregion
 
         #region 增删改
         /// <summary>
         /// 插入一个Model
         /// </summary>
         /// <typeparam name="T"></typeparam>
         /// <param name="model"></param>
         /// <param name="transaction"></param>
         /// <param name="commandTimeout"></param>
         /// <param name="sqlAdapter"></param>
         /// <returns></returns>
         public  static  async Task< int > InsertAsync<T>(T model, IDbTransaction transaction =  null int ? commandTimeout =  null where  T :  class new ()
         {
             using  ( var  conn = ConnFactory.GetConnection())
             {
                 return  await conn.InsertAsync<T>(model, transaction, commandTimeout);
             }
         }
 
         /// <summary>
         /// 更新一个Model
         /// </summary>
         /// <typeparam name="T"></typeparam>
         /// <param name="connection"></param>
         /// <param name="entityToUpdate"></param>
         /// <param name="transaction"></param>
         /// <param name="commandTimeout"></param>
         /// <returns></returns>
         public  static  async Task<T> UpdateAsync<T>(T model, IDbTransaction transaction =  null int ? commandTimeout =  null where  T :  class new ()
         {
             using  ( var  conn = ConnFactory.GetConnection())
             {
                 bool  b = await conn.UpdateAsync<T>(model, transaction, commandTimeout);
                 if  (b) {  return  model; }
                 else  return  null ; }
             }
         }
         #endregion
 
         #region 分页查询
         /// <summary>
         /// 分页查询(为什么不用out,请参考:http://www.cnblogs.com/dunitian/p/5556909.html)
         /// </summary>
         /// <param name="sql">查询语句</param>
         /// <param name="p">动态参数</param>
         /// <param name="sqlTotal">total语句</param>
         /// <param name="p2">Total动态参数</param>
         /// <returns></returns>
         public  static  async Task< string > PageLoadAsync<T>( string  sql,  object  p =  null string  sqlTotal =  "" object  p2 =  null )
         {
             var  rows = await QueryAsync<T>(sql.ToString(), p);
             var  total = rows.Count();
             if  (!sqlTotal.IsNullOrWhiteSpace()) { total = await ExecuteScalarAsync< int >(sqlTotal, p2); }
             return  new  { rows = rows, total = total }.ObjectToJson();
         }
         #endregion
     }

 博客地址:http://dnt.dkill.net


本文转自毒逆天博客园博客,原文链接:http://www.cnblogs.com/dunitian/p/5710382.html,如需转载请自行联系原作者

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值