1 public static class SugarFactoryExtensions
2 {
3
4 #region 根据主键获取实体对象
5
6 /// <summary>
7 /// 根据主键获取实体对象
8 /// </summary>
9 /// <typeparam name="TSource">数据源类型</typeparam>
10 /// <param name="db"></param>
11 /// <param name="id"></param>
12 /// <returns></returns>
13 public static TSource GetById<TSource>(this SqlSugarClient db, dynamic id) where TSource : EntityBase, new()
14 {
15 return db.Queryable<TSource>().InSingle(id);
16 }
17
18 /// <summary>
19 /// 根据主键获取实体对象
20 /// </summary>
21 /// <typeparam name="TSource">数据源类型</typeparam>
22 /// <typeparam name="TMap">数据源映射类型</typeparam>
23 /// <param name="db"></param>
24 /// <param name="id"></param>
25 /// <returns></returns>
26 public static TMap GetById<TSource, TMap>(this SqlSugarClient db, dynamic id) where TSource : EntityBase, new()
27 {
28 TSource model = db.Queryable<TSource>().InSingle(id);
29 return model.Map<TSource, TMap>();
30 }
31
32 #endregion
33
34 #region 根据Linq表达式条件获取单个实体对象
35
36 /// <summary>
37 /// 根据条件获取单个实体对象
38 /// </summary>
39 /// <typeparam name="TSource">数据源类型</typeparam>
40 /// <param name="db"></param>
41 /// <param name="whereExp"></param>
42 /// <returns></returns>
43 public static TSource Get<TSource>(this SqlSugarClient db, Expression<Func<TSource, bool>> whereExp) where TSource : EntityBase, new()
44 {
45 return db.Queryable<TSource>().Where(whereExp).Single();
46 }
47
48 /// <summary>
49 /// 根据条件获取单个实体对象
50 /// </summary>
51 /// <typeparam name="TSource">数据源类型</typeparam>
52 /// <typeparam name="TMap">数据源映射类型</typeparam>
53 /// <param name="db"></param>
54 /// <param name="whereExp">条件表达式</param>
55 /// <returns></returns>
56 public static TMap Get<TSource, TMap>(this SqlSugarClient db, Expression<Func<TSource, bool>> whereExp) where TSource : EntityBase, new()
57 {
58 TSource model = db.Queryable<TSource>().Where(whereExp).Single();
59 return model.Map<TSource, TMap>();
60 }
61
62 #endregion
63
64 #region 获取所有实体列表
65
66 /// <summary>
67 /// 获取所有实体列表
68 /// </summary>
69 /// <typeparam name="TSource">数据源类型</typeparam>
70 /// <param name="db"></param>
71 /// <returns></returns>
72 public static List<TSource> GetList<TSource>(this SqlSugarClient db) where TSource : EntityBase, new()
73 {
74 return db.Queryable<TSource>().ToList();
75 }
76
77 /// <summary>
78 /// 获取实体列表
79 /// </summary>
80 /// <typeparam name="TSource">数据源类型</typeparam>
81 /// <typeparam name="TMap">数据源映射类型</typeparam>
82 /// <param name="db"></param>
83 /// <returns></returns>
84 public static List<TMap> GetList<TSource, TMap>(this SqlSugarClient db) where TSource : EntityBase, new()
85 {
86 var result = db.Queryable<TSource>().ToList();
87 return result.Map<List<TSource>, List<TMap>>();
88 }
89
90 #endregion
91
92 #region 根据Linq表达式条件获取列表
93
94 /// <summary>
95 /// 根据条件获取实体列表
96 /// </summary>
97 /// <typeparam name="TSource">数据源类型</typeparam>
98 /// <param name="db"></param>
99 /// <param name="whereExp">条件表达式</param>
100 /// <returns></returns>
101 public static List<TSource> GetList<TSource>(this SqlSugarClient db, Expression<Func<TSource, bool>> whereExp) where TSource : EntityBase, new()
102 {
103 return db.Queryable<TSource>().Where(whereExp).ToList();
104 }
105
106 /// <summary>
107 /// 根据条件获取实体列表
108 /// </summary>
109 /// <typeparam name="TSource">数据源类型</typeparam>
110 /// <typeparam name="TMap">数据源映射类型</typeparam>
111 /// <param name="db"></param>
112 /// <param name="whereExp">条件表达式</param>
113 /// <returns></returns>
114 public static List<TMap> GetList<TSource, TMap>(this SqlSugarClient db, Expression<Func<TSource, bool>> whereExp) where TSource : EntityBase, new()
115 {
116 var result = db.Queryable<TSource>().Where(whereExp).ToList();
117 return result.Map<List<TSource>, List<TMap>>();
118 }
119
120 #endregion
121
122 #region 根据Sugar条件获取列表
123
124 /// <summary>
125 /// 根据条件获取实体列表
126 /// </summary>
127 /// <typeparam name="TSource"></typeparam>
128 /// <param name="db"></param>
129 /// <param name="conditionals">Sugar调价表达式集合</param>
130 /// <returns></returns>
131 public static List<TSource> GetList<TSource>(this SqlSugarClient db, List<IConditionalModel> conditionals) where TSource : EntityBase, new()
132 {
133 return db.Queryable<TSource>().Where(conditionals).ToList();
134 }
135
136 /// <summary>
137 /// 根据条件获取实体列表
138 /// </summary>
139 /// <typeparam name="TSource">数据源类型</typeparam>
140 /// <typeparam name="TMap">数据源映射类型</typeparam>
141 /// <param name="db"></param>
142 /// <param name="conditionals">Sugar调价表达式集合</param>
143 /// <returns></returns>
144 public static List<TMap> GetList<TSource, TMap>(this SqlSugarClient db, List<IConditionalModel> conditionals) where TSource : EntityBase, new()
145 {
146 var result = db.Queryable<TSource>().Where(conditionals).ToList();
147 return result.Map<List<TSource>, List<TMap>>();
148 }
149
150 #endregion
151
152 #region 是否包含某个元素
153 /// <summary>
154 /// 是否包含某个元素
155 /// </summary>
156 /// <typeparam name="TSource"></typeparam>
157 /// <param name="db"></param>
158 /// <param name="whereExp">条件表达式</param>
159 /// <returns></returns>
160 public static bool Exist<TSource>(this SqlSugarClient db, Expression<Func<TSource, bool>> whereExp) where TSource : EntityBase, new()
161 {
162 return db.Queryable<TSource>().Where(whereExp).Any();
163 }
164 #endregion
165
166 #region 新增实体对象
167 /// <summary>
168 /// 新增实体对象
169 /// </summary>
170 /// <typeparam name="TSource"></typeparam>
171 /// <param name="db"></param>
172 /// <param name="insertObj"></param>
173 /// <returns></returns>
174 public static bool Insert<TSource>(this SqlSugarClient db, TSource insertObj) where TSource : EntityBase, new()
175 {
176 return db.Insertable(insertObj).ExecuteCommand() > 0;
177 }
178
179 /// <summary>
180 /// 新增实体对象
181 /// </summary>
182 /// <typeparam name="TSource"></typeparam>
183 /// <typeparam name="TMap"></typeparam>
184 /// <param name="db"></param>
185 /// <param name="insertDto"></param>
186 /// <returns></returns>
187 public static bool Insert<TSource, TMap>(this SqlSugarClient db, TSource insertDto) where TMap : EntityBase, new()
188 {
189 var entity = insertDto.Map<TSource, TMap>();
190 return db.Insertable(entity).ExecuteCommand() > 0;
191 }
192 #endregion
193
194 #region 批量新增实体对象
195 /// <summary>
196 /// 批量新增实体对象
197 /// </summary>
198 /// <typeparam name="TSource"></typeparam>
199 /// <param name="db"></param>
200 /// <param name="insertObjs"></param>
201 /// <returns></returns>
202 public static bool InsertRange<TSource>(this SqlSugarClient db, List<TSource> insertObjs) where TSource : EntityBase, new()
203 {
204 return db.Insertable(insertObjs).ExecuteCommand() > 0;
205 }
206
207 /// <summary>
208 /// 批量新增实体对象
209 /// </summary>
210 /// <typeparam name="TSource"></typeparam>
211 /// <typeparam name="TMap"></typeparam>
212 /// <param name="db"></param>
213 /// <param name="insertObjs"></param>
214 /// <returns></returns>
215 public static bool InsertRange<TSource, TMap>(this SqlSugarClient db, List<TSource> insertObjs) where TMap : EntityBase, new()
216 {
217 var entitys = insertObjs.Map<List<TSource>, List<TMap>>();
218 return db.Insertable(entitys).ExecuteCommand() > 0;
219 }
220 #endregion
221
222 #region 更新单个实体对象
223 /// <summary>
224 /// 更新单个实体对象
225 /// </summary>
226 /// <typeparam name="TSource"></typeparam>
227 /// <param name="db"></param>
228 /// <param name="updateObj"></param>
229 /// <returns></returns>
230 public static bool Update<TSource>(this SqlSugarClient db, TSource updateObj) where TSource : EntityBase, new()
231 {
232 return db.Updateable(updateObj).ExecuteCommand() > 0;
233 }
234 #endregion
235
236 #region 根据条件批量更新实体指定列
237 /// <summary>
238 /// 根据条件批量更新实体指定列
239 /// </summary>
240 /// <typeparam name="TSource"></typeparam>
241 /// <param name="db"></param>
242 /// <param name="columns">需要更新的列</param>
243 /// <param name="whereExp">条件表达式</param>
244 /// <returns></returns>
245 public static bool Update<TSource>(this SqlSugarClient db, Expression<Func<TSource, TSource>> columns, Expression<Func<TSource, bool>> whereExp) where TSource : EntityBase, new()
246 {
247 return db.Updateable<TSource>().UpdateColumns(columns).Where(whereExp).ExecuteCommand() > 0;
248 }
249 #endregion
250
251 #region 物理删除实体对象
252
253 /// <summary>
254 /// 物理删除实体对象
255 /// </summary>
256 /// <typeparam name="TSource"></typeparam>
257 /// <param name="db"></param>
258 /// <param name="deleteObj"></param>
259 /// <returns></returns>
260 public static bool Delete<TSource>(this SqlSugarClient db, TSource deleteObj) where TSource : EntityBase, new()
261 {
262 return db.Deleteable<TSource>().Where(deleteObj).ExecuteCommand() > 0;
263 }
264
265 /// <summary>
266 /// 物理删除实体对象
267 /// </summary>
268 /// <typeparam name="TSource"></typeparam>
269 /// <param name="db"></param>
270 /// <param name="whereExp">条件表达式</param>
271 /// <returns></returns>
272 public static bool Delete<TSource>(this SqlSugarClient db, Expression<Func<TSource, bool>> whereExp) where TSource : EntityBase, new()
273 {
274 return db.Deleteable<TSource>().Where(whereExp).ExecuteCommand() > 0;
275 }
276
277 /// <summary>
278 /// 根据主键物理删除实体对象
279 /// </summary>
280 /// <typeparam name="TSource"></typeparam>
281 /// <param name="db"></param>
282 /// <param name="id"></param>
283 /// <returns></returns>
284 public static bool DeleteById<TSource>(this SqlSugarClient db, dynamic id) where TSource : EntityBase, new()
285 {
286 return db.Deleteable<TSource>().In(id).ExecuteCommand() > 0;
287 }
288
289 /// <summary>
290 /// 根据主键批量物理删除实体集合
291 /// </summary>
292 /// <typeparam name="TSource"></typeparam>
293 /// <param name="db"></param>
294 /// <param name="ids"></param>
295 /// <returns></returns>
296 public static bool DeleteByIds<TSource>(this SqlSugarClient db, dynamic[] ids) where TSource : EntityBase, new()
297 {
298 return db.Deleteable<TSource>().In(ids).ExecuteCommand() > 0;
299 }
300
301 #endregion
302
303 #region 分页查询
304
305 /// <summary>
306 /// 获取分页列表【页码,每页条数】
307 /// </summary>
308 /// <typeparam name="TSource">数据源类型</typeparam>
309 /// <param name="db"></param>
310 /// <param name="pageIndex">页码(从0开始)</param>
311 /// <param name="pageSize">每页条数</param>
312 /// <returns></returns>
313 public static IPagedList<TSource> GetPageList<TSource>(this SqlSugarClient db, int pageIndex, int pageSize) where TSource : EntityBase, new()
314 {
315 int count = 0;
316 var result = db.Queryable<TSource>().ToPageList(pageIndex, pageSize, ref count);
317 return new PagedList<TSource>(result, pageIndex, pageSize, count);
318 }
319
320 /// <summary>
321 /// 获取分页列表【页码,每页条数】
322 /// </summary>
323 /// <typeparam name="TSource">数据源类型</typeparam>
324 /// <typeparam name="TMap">数据源映射类型</typeparam>
325 /// <param name="db"></param>
326 /// <param name="pageIndex">页码(从0开始)</param>
327 /// <param name="pageSize">每页条数</param>
328 /// <returns></returns>
329 public static IPagedList<TMap> GetPageList<TSource, TMap>(this SqlSugarClient db, int pageIndex, int pageSize) where TSource : EntityBase, new()
330 {
331 int count = 0;
332 var result = db.Queryable<TSource>().ToPageList(pageIndex, pageSize, ref count);
333 var pageResult = new PagedList<TSource>(result, pageIndex, pageSize, count);
334 return pageResult.Map<TSource, TMap>();
335 }
336
337 #endregion
338
339 #region 分页查询(排序)
340
341 /// <summary>
342 /// 获取分页列表【排序,页码,每页条数】
343 /// </summary>
344 /// <typeparam name="TSource">数据源类型</typeparam>
345 /// <param name="db"></param>
346 /// <param name="orderExp">排序表达式</param>
347 /// <param name="orderType">排序类型</param>
348 /// <param name="pageIndex">页码(从0开始)</param>
349 /// <param name="pageSize">每页条数</param>
350 /// <returns></returns>
351 public static IPagedList<TSource> GetPageList<TSource>(this SqlSugarClient db, Expression<Func<TSource, object>> orderExp, OrderByType orderType, int pageIndex, int pageSize) where TSource : EntityBase, new()
352 {
353 int count = 0;
354 var result = db.Queryable<TSource>().OrderBy(orderExp, orderType).ToPageList(pageIndex, pageSize, ref count);
355 return new PagedList<TSource>(result, pageIndex, pageSize, count);
356 }
357
358 /// <summary>
359 /// 获取分页列表【排序,页码,每页条数】
360 /// </summary>
361 /// <typeparam name="TSource">数据源类型</typeparam>
362 /// <typeparam name="TMap">数据源映射类型</typeparam>
363 /// <param name="db"></param>
364 /// <param name="orderExp">排序表达式</param>
365 /// <param name="orderType">排序类型</param>
366 /// <param name="pageIndex">页码(从0开始)</param>
367 /// <param name="pageSize">每页条数</param>
368 /// <returns></returns>
369 public static IPagedList<TMap> GetPageList<TSource, TMap>(this SqlSugarClient db, Expression<Func<TSource, object>> orderExp, OrderByType orderType, int pageIndex, int pageSize) where TSource : EntityBase, new()
370 {
371 int count = 0;
372 var result = db.Queryable<TSource>().OrderBy(orderExp, orderType).ToPageList(pageIndex, pageSize, ref count);
373 var pageResult = new PagedList<TSource>(result, pageIndex, pageSize, count);
374 return pageResult.Map<TSource, TMap>();
375 }
376
377 #endregion
378
379 #region 分页查询(Linq表达式条件)
380
381 /// <summary>
382 /// 获取分页列表【Linq表达式条件,页码,每页条数】
383 /// </summary>
384 /// <typeparam name="TSource">数据源类型</typeparam>
385 /// <param name="db"></param>
386 /// <param name="whereExp">Linq表达式条件</param>
387 /// <param name="pageIndex">页码(从0开始)</param>
388 /// <param name="pageSize">每页条数</param>
389 /// <returns></returns>
390 public static IPagedList<TSource> GetPageList<TSource>(this SqlSugarClient db, Expression<Func<TSource, bool>> whereExp, int pageIndex, int pageSize) where TSource : EntityBase, new()
391 {
392 int count = 0;
393 var result = db.Queryable<TSource>().Where(whereExp).ToPageList(pageIndex, pageSize, ref count);
394 return new PagedList<TSource>(result, pageIndex, pageSize, count);
395 }
396
397 /// <summary>
398 /// 获取分页列表【Linq表达式条件,页码,每页条数】
399 /// </summary>
400 /// <typeparam name="TSource">数据源类型</typeparam>
401 /// <typeparam name="TMap">数据源映射类型</typeparam>
402 /// <param name="db"></param>
403 /// <param name="whereExp">Linq表达式条件</param>
404 /// <param name="pageIndex">页码(从0开始)</param>
405 /// <param name="pageSize">每页条数</param>
406 /// <returns></returns>
407 public static IPagedList<TMap> GetPageList<TSource, TMap>(this SqlSugarClient db, Expression<Func<TSource, bool>> whereExp, int pageIndex, int pageSize) where TSource : EntityBase, new()
408 {
409 int count = 0;
410 var result = db.Queryable<TSource>().Where(whereExp).ToPageList(pageIndex, pageSize, ref count);
411 var pageResult = new PagedList<TSource>(result, pageIndex, pageSize, count);
412 return pageResult.Map<TSource, TMap>();
413 }
414
415 #endregion
416
417 #region 分页查询(Linq表达式条件,排序)
418
419 /// <summary>
420 /// 获取分页列表【Linq表达式条件,排序,页码,每页条数】
421 /// </summary>
422 /// <typeparam name="TSource">数据源类型</typeparam>
423 /// <param name="db"></param>
424 /// <param name="whereExp">Linq表达式条件</param>
425 /// <param name="orderExp">排序表达式</param>
426 /// <param name="orderType">排序类型</param>
427 /// <param name="pageIndex">页码(从0开始)</param>
428 /// <param name="pageSize">每页条数</param>
429 /// <returns></returns>
430 public static IPagedList<TSource> GetPageList<TSource>(this SqlSugarClient db, Expression<Func<TSource, bool>> whereExp, Expression<Func<TSource, object>> orderExp, OrderByType orderType, int pageIndex, int pageSize) where TSource : EntityBase, new()
431 {
432 int count = 0;
433 var result = db.Queryable<TSource>().Where(whereExp).OrderBy(orderExp, orderType).ToPageList(pageIndex, pageSize, ref count);
434 return new PagedList<TSource>(result, pageIndex, pageSize, count);
435 }
436
437 /// <summary>
438 /// 获取分页列表【Linq表达式条件,排序,页码,每页条数】
439 /// </summary>
440 /// <typeparam name="TSource">数据源类型</typeparam>
441 /// <typeparam name="TMap">数据源映射类型</typeparam>
442 /// <param name="db"></param>
443 /// <param name="whereExp">Linq表达式条件</param>
444 /// <param name="orderExp">排序表达式</param>
445 /// <param name="orderType">排序类型</param>
446 /// <param name="pageIndex">页码(从0开始)</param>
447 /// <param name="pageSize">每页条数</param>
448 /// <returns></returns>
449 public static IPagedList<TMap> GetPageList<TSource, TMap>(this SqlSugarClient db, Expression<Func<TSource, bool>> whereExp, Expression<Func<TSource, object>> orderExp, OrderByType orderType, int pageIndex, int pageSize) where TSource : EntityBase, new()
450 {
451 int count = 0;
452 var result = db.Queryable<TSource>().Where(whereExp).OrderBy(orderExp, orderType).ToPageList(pageIndex, pageSize, ref count);
453 var pageResult = new PagedList<TSource>(result, pageIndex, pageSize, count);
454 return pageResult.Map<TSource, TMap>();
455 }
456
457 #endregion
458
459 #region 分页查询(Sugar条件)
460
461 /// <summary>
462 /// 获取分页列表【Sugar表达式条件,页码,每页条数】
463 /// </summary>
464 /// <typeparam name="TSource">数据源类型</typeparam>
465 /// <param name="db"></param>
466 /// <param name="conditionals">Sugar条件表达式集合</param>
467 /// <param name="pageIndex">页码(从0开始)</param>
468 /// <param name="pageSize">每页条数</param>
469 /// <returns></returns>
470 public static IPagedList<TSource> GetPageList<TSource>(this SqlSugarClient db, List<IConditionalModel> conditionals, int pageIndex, int pageSize) where TSource : EntityBase, new()
471 {
472 int count = 0;
473 var result = db.Queryable<TSource>().Where(conditionals).ToPageList(pageIndex, pageSize, ref count);
474 return new PagedList<TSource>(result, pageIndex, pageSize, count);
475 }
476
477 /// <summary>
478 /// 获取分页列表【Sugar表达式条件,页码,每页条数】
479 /// </summary>
480 /// <typeparam name="TSource">数据源类型</typeparam>
481 /// <typeparam name="TMap">数据源映射类型</typeparam>
482 /// <param name="db"></param>
483 /// <param name="conditionals">Sugar条件表达式集合</param>
484 /// <param name="pageIndex">页码(从0开始)</param>
485 /// <param name="pageSize">每页条数</param>
486 /// <returns></returns>
487 public static IPagedList<TMap> GetPageList<TSource, TMap>(this SqlSugarClient db, List<IConditionalModel> conditionals, int pageIndex, int pageSize) where TSource : EntityBase, new()
488 {
489 int count = 0;
490 var result = db.Queryable<TSource>().Where(conditionals).ToPageList(pageIndex, pageSize, ref count);
491 var pageResult = new PagedList<TSource>(result, pageIndex, pageSize, count);
492 return pageResult.Map<TSource, TMap>();
493 }
494
495 #endregion
496
497 #region 分页查询(Sugar条件,排序)
498
499 /// <summary>
500 /// 获取分页列表【Sugar表达式条件,排序,页码,每页条数】
501 /// </summary>
502 /// <typeparam name="TSource"></typeparam>
503 /// <param name="db"></param>
504 /// <param name="conditionals">Sugar条件表达式集合</param>
505 /// <param name="orderExp">排序表达式</param>
506 /// <param name="orderType">排序类型</param>
507 /// <param name="pageIndex">页码(从0开始)</param>
508 /// <param name="pageSize">每页条数</param>
509 /// <returns></returns>
510 public static IPagedList<TSource> GetPageList<TSource>(this SqlSugarClient db, List<IConditionalModel> conditionals, Expression<Func<TSource, object>> orderExp, OrderByType orderType, int pageIndex, int pageSize) where TSource : EntityBase, new()
511 {
512 int count = 0;
513 var result = db.Queryable<TSource>().Where(conditionals).OrderBy(orderExp, orderType).ToPageList(pageIndex, pageSize, ref count);
514 return new PagedList<TSource>(result, pageIndex, pageSize, count);
515 }
516
517 /// <summary>
518 /// 获取分页列表【Sugar表达式条件,排序,页码,每页条数】
519 /// </summary>
520 /// <typeparam name="TSource"></typeparam>
521 /// <param name="db"></param>
522 /// <param name="conditionals">Sugar条件表达式集合</param>
523 /// <param name="orderExp">排序表达式</param>
524 /// <param name="orderType">排序类型</param>
525 /// <param name="pageIndex">页码(从0开始)</param>
526 /// <param name="pageSize">每页条数</param>
527 /// <returns></returns>
528 public static IPagedList<TMap> GetPageList<TSource, TMap>(this SqlSugarClient db, List<IConditionalModel> conditionals, Expression<Func<TSource, object>> orderExp, OrderByType orderType, int pageIndex, int pageSize) where TSource : EntityBase, new()
529 {
530 int count = 0;
531 var result = db.Queryable<TSource>().Where(conditionals).OrderBy(orderExp, orderType).ToPageList(pageIndex, pageSize, ref count);
532 var pageResult = new PagedList<TSource>(result, pageIndex, pageSize, count);
533 return pageResult.Map<TSource, TMap>();
534 }
535
536 #endregion
537
538 #region 分页查询 (扩展条件构造实体,默认排序列,默认排序方式)
539 /// <summary>
540 /// 分页查询 (扩展条件构造实体,默认排序列,默认排序方式)
541 /// </summary>
542 /// <typeparam name="TSource"></typeparam>
543 /// <typeparam name="TMap"></typeparam>
544 /// <param name="db"></param>
545 /// <param name="query"></param>
546 /// <param name="defaultSort"></param>
547 /// <param name="defaultSortType"></param>
548 /// <returns></returns>
549 public static IPagedList<TMap> GetPageList<TSource, TMap>(this SqlSugarClient db, QueryCollection query, Expression<Func<TSource, object>> defaultSort, OrderByType defaultSortType) where TSource : EntityBase, new()
550 {
551 int count = 0;
552 List<IConditionalModel> conditionals = query.ConditionItems.ExamineConditional<TSource>();
553 Expression<Func<TSource, object>> sort = query.SortLambda<TSource, object>(defaultSort, defaultSortType, out var sortType);
554 var result = db.Queryable<TSource>().Where(conditionals).OrderBy(sort, sortType).ToPageList(query.PageIndex, query.PageSize, ref count);
555 var pageResult = new PagedList<TSource>(result, query.PageIndex, query.PageSize, count);
556 return pageResult.Map<TSource, TMap>();
557 }
558 #endregion
559
560 #region 分页查询 (扩展条件构造实体,默认排序列,默认排序方式,Linq表达式条件)
561 /// <summary>
562 /// 分页查询 (扩展条件构造实体,默认排序列,默认排序方式,Linq表达式条件)
563 /// </summary>
564 /// <typeparam name="TSource"></typeparam>
565 /// <typeparam name="TMap"></typeparam>
566 /// <param name="db"></param>
567 /// <param name="query"></param>
568 /// <param name="defaultSort"></param>
569 /// <param name="defaultSortType"></param>
570 /// <param name="whereExp"></param>
571 /// <returns></returns>
572 public static IPagedList<TMap> GetPageList<TSource, TMap>(this SqlSugarClient db, QueryCollection query, Expression<Func<TSource, object>> defaultSort, OrderByType defaultSortType, Expression<Func<TSource, bool>> whereExp) where TSource : EntityBase, new()
573 {
574 int count = 0;
575 List<IConditionalModel> conditionals = query.ConditionItems.ExamineConditional<TSource>();
576 Expression<Func<TSource, object>> sort = query.SortLambda<TSource, object>(defaultSort, defaultSortType, out var sortType);
577 var result = db.Queryable<TSource>().Where(whereExp).Where(conditionals).OrderBy(sort, sortType).ToPageList(query.PageIndex, query.PageSize, ref count);
578 var pageResult = new PagedList<TSource>(result, query.PageIndex, query.PageSize, count);
579 return pageResult.Map<TSource, TMap>();
580 }
581 #endregion
582 }