温馨提示:代码在线浏览功能只能做为源码浏览参考,不能展示项目的全部,如果想更进一步了解该代码请下载:逐迹内容管理系统AspxNuke v2.0源码
当前文件路径:AspxNuke/Portal/NHibernateDAL/BaseDAL.cs

1using System.Collections.Generic; 2
using NHibernate; 3
using System.Text; 4
5
namespace AspxNuke.Portal.NHibernateDAL 6
...{ 7
/**//// <summary> 8
/// 数据层基类 9
/// </summary> 10
/// <typeparam name="T">实体类型</typeparam> 11
public class BaseDAL<T> : AspxNuke.Portal.IDAL.IBaseDAL<T> 12
...{ 13
Insert#region Insert 14
/**//// <summary> 15
/// 新增记录 16
/// </summary> 17
/// <param name="t">实体</param> 18
public virtual void Insert(T t) 19
...{ 20
ISession session = NHibernateHelper.GetCurrentSession(); 21
ITransaction tx = null; 22
try 23
...{ 24
tx = session.BeginTransaction(); 25
session.Save(t); 26
_getIdentity = session.GetIdentifier(t); 27
tx.Commit(); 28
} 29
catch (HibernateException ex) 30
...{ 31
if (tx != null) tx.Rollback(); 32
throw ex; 33
} 34
finally 35
...{ 36
NHibernateHelper.CloseSession(); 37
} 38
} 39
#endregion 40
41
Update#region Update 42
/**//// <summary> 43
/// 更新记录 44
/// </summary> 45
/// <param name="t">实体</param> 46
public virtual void Update(T t) 47
...{ 48
ISession session = NHibernateHelper.GetCurrentSession(); 49
ITransaction tx = null; 50
try 51
...{ 52
tx = session.BeginTransaction(); 53
54
session.Update(t); 55
56
tx.Commit(); 57
} 58
catch (HibernateException ex) 59
...{ 60
if (tx != null) tx.Rollback(); 61
throw ex; 62
} 63
finally 64
...{ 65
NHibernateHelper.CloseSession(); 66
} 67
} 68
#endregion 69
70
Delete#region Delete 71
/**//// <summary> 72
/// 删除记录 73
/// </summary> 74
/// <param name="t">实体</param> 75
public virtual void Delete(T t) 76
...{ 77
ISession session = NHibernateHelper.GetCurrentSession(); 78
ITransaction tx = null; 79
try 80
...{ 81
tx = session.BeginTransaction(); 82
83
session.Delete(t); 84
85
tx.Commit(); 86
} 87
catch (HibernateException ex) 88
...{ 89
if (tx != null) tx.Rollback(); 90
throw ex; 91
} 92
finally 93
...{ 94
NHibernateHelper.CloseSession(); 95
} 96
} 97
#endregion 98
99
GetObject#region GetObject 100
/**//// <summary> 101
/// 获取记录 102
/// </summary> 103
/// <param name="id">主键</param> 104
/// <returns>记录</returns> 105
public virtual T GetObject(object id) 106
...{ 107
ISession session = NHibernateHelper.GetCurrentSession(); 108
ITransaction tx = null; 109
try 110
...{ 111
tx = session.BeginTransaction(); 112
113
T t = (T)session.Get<T>(id); 114
115
tx.Commit(); 116
117
return t; 118
} 119
catch (HibernateException ex) 120
...{ 121
if (tx != null) tx.Rollback(); 122
throw ex; 123
} 124
finally 125
...{ 126
NHibernateHelper.CloseSession(); 127
} 128
} 129
#endregion 130
131
GetObjects#region GetObjects 132
/**//// <summary> 133
/// 获取记录集合 134
/// </summary> 135
/// <returns>记录集合</returns> 136
public IList<T> GetObjects() 137
...{ 138
string hql = string.Format("From {0} as tmp", typeof(T).Name); 139
return GetObjects(hql); 140
} 141
142
/**//// <summary> 143
/// 获取记录集合 144
/// </summary> 145
/// <param name="where">查询条件</param> 146
/// <param name="orderBy">排序</param> 147
/// <returns>记录集合</returns> 148
public virtual IList<T> GetObjects(string where, string orderBy) 149
...{ 150
StringBuilder hql = new StringBuilder(); 151
hql.AppendFormat("from {0} as tmp", typeof(T).Name); 152
if (!string.IsNullOrEmpty(where)) 153
...{ 154
hql.AppendFormat(" where {0}", where); 155
} 156
if (!string.IsNullOrEmpty(orderBy)) 157
...{ 158
hql.AppendFormat(" order by {0}", orderBy); 159
} 160
161
return GetObjects(hql.ToString()); 162
} 163
164
/**//// <summary> 165
/// 获取记录集合 166
/// </summary> 167
/// <param name="where">查询条件</param> 168
/// <param name="orderBy">排序</param> 169
/// <param name="pageNo">当前页码</param> 170
/// <param name="pageSize">页长</param> 171
/// <returns>记录集合</returns> 172
public virtual IList<T> GetObjects(string where, string orderBy, int pageNo, int pageSize) 173
...{ 174
int start = (pageNo - 1) * pageSize; 175
int max = pageSize; 176
StringBuilder hql = new StringBuilder(); 177
hql.AppendFormat("from {0} as tmp", typeof(T).Name); 178
if (!string.IsNullOrEmpty(where)) 179
...{ 180
hql.AppendFormat(" where {0}", where); 181
} 182
if (!string.IsNullOrEmpty(orderBy)) 183
...{ 184
hql.AppendFormat(" order by {0}", orderBy); 185
} 186
187
return GetObjects(hql.ToString(), start, max); 188
} 189
190
/**//// <summary> 191
/// 获取记录集合 192
/// </summary> 193
/// <param name="hql">查询语句</param> 194
/// <returns>记录集合</returns> 195
private IList<T> GetObjects(string hql) 196
...{ 197
ISession session = NHibernateHelper.GetCurrentSession(); 198
ITransaction tx = null; 199
try 200
...{ 201
tx = session.BeginTransaction(); 202
203
IList<T> list = session.CreateQuery(hql).List<T>(); 204
205
tx.Commit(); 206
207
return list; 208
} 209
catch (HibernateException ex) 210
...{ 211
if (tx != null) tx.Rollback(); 212
throw ex; 213
} 214
finally 215
...{ 216
NHibernateHelper.CloseSession(); 217
} 218
} 219
220
/**//// <summary> 221
/// 获取记录集合 222
/// </summary> 223
/// <param name="start">设置首个对象返回的位置</param> 224
/// <param name="max">设置返回的最大结果数</param> 225
/// <returns>记录集合</returns> 226
private IList<T> GetObjects(int start, int max) 227
...{ 228
string hql = string.Format("From {0} as tmp", typeof(T).Name); 229
return GetObjects(hql, start, max); 230
} 231
232
/**//// <summary> 233
/// 获取记录集合 234
/// </summary> 235
/// <param name="hql">查询语句</param> 236
/// <param name="start">设置首个对象返回的位置</param> 237
/// <param name="max">设置返回的最大结果数</param> 238
/// <returns>记录集合</returns> 239
private IList<T> GetObjects(string hql, int start, int max) 240
...{ 241
ISession session = NHibernateHelper.GetCurrentSession(); 242
ITransaction tx = null; 243
try 244
...{ 245
tx = session.BeginTransaction(); 246
247
_getRowCount = session.CreateQuery(hql).List().Count; 248
249
IList<T> list = session.CreateQuery(hql).SetFirstResult(start).SetMaxResults(max).List<T>(); 250
tx.Commit(); 251
252
return list; 253
} 254
catch (HibernateException ex) 255
...{ 256
if (tx != null) tx.Rollback(); 257
throw ex; 258
} 259
finally 260
...{ 261
NHibernateHelper.CloseSession(); 262
} 263
} 264
#endregion 265
266
GetRowCount#region GetRowCount 267
private int _getRowCount; 268
/**//// <summary> 269
/// 获取记录行数,只有分页时有数值,其它为0 270
/// </summary> 271
public int GetRowCount 272
...{ 273
get ...{ return _getRowCount; } 274
} 275
#endregion 276
277




