DbSqlQueryExpression.cs 2.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778
  1. using Ant.Common;
  2. using Ant.ORM;
  3. using Ant.Utility;
  4. using System;
  5. using System.Collections.Generic;
  6. using System.Linq;
  7. namespace Ant.DbExpressions
  8. {
  9. /// <summary>
  10. ///
  11. /// </summary>
  12. public class DbSqlQueryExpression : DbExpression
  13. {
  14. /// <summary>
  15. /// 数据库SQL解析
  16. /// </summary>
  17. public DbSqlQueryExpression()
  18. : base(DbExpressionType.SqlQuery, UtilConstants.TypeOfVoid)
  19. {
  20. this.ColumnSegments = new List<DbColumnSegment>();
  21. this.GroupSegments = new List<DbExpression>();
  22. this.Orderings = new List<DbOrdering>();
  23. }
  24. /// <summary>
  25. /// TOP条数
  26. /// </summary>
  27. public int? TakeCount { get; set; }
  28. /// <summary>
  29. /// 跳过用于分页
  30. /// </summary>
  31. public int? SkipCount { get; set; }
  32. /// <summary>
  33. /// 所有列
  34. /// </summary>
  35. public List<DbColumnSegment> ColumnSegments { get; private set; }
  36. /// <summary>
  37. /// 表名
  38. /// </summary>
  39. public DbFromTableExpression Table { get; set; }
  40. /// <summary>
  41. /// 查询条件
  42. /// </summary>
  43. public DbExpression Condition { get; set; }
  44. /// <summary>
  45. /// 拼接查询条件
  46. /// </summary>
  47. public IPredicate Predicate
  48. {
  49. get;
  50. set;
  51. }
  52. /// <summary>
  53. /// 分组列表
  54. /// </summary>
  55. public List<DbExpression> GroupSegments { get; private set; }
  56. /// <summary>
  57. /// 分组条件
  58. /// </summary>
  59. public DbExpression HavingCondition { get; set; }
  60. /// <summary>
  61. /// 排序
  62. /// </summary>
  63. public List<DbOrdering> Orderings { get; private set; }
  64. /// <summary>
  65. ///
  66. /// </summary>
  67. /// <typeparam name="T"></typeparam>
  68. /// <param name="visitor"></param>
  69. /// <returns></returns>
  70. public override T Accept<T>(DbExpressionVisitor<T> visitor)
  71. {
  72. return visitor.Visit(this);
  73. }
  74. }
  75. }