DbCaseWhenExpression.cs 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Collections.ObjectModel;
  4. namespace Ant.DbExpressions
  5. {
  6. public class DbCaseWhenExpression : DbExpression
  7. {
  8. ReadOnlyCollection<WhenThenExpressionPair> _whenThenPairs;
  9. DbExpression _else;
  10. public DbCaseWhenExpression(Type type, IList<WhenThenExpressionPair> whenThenPairs, DbExpression @else)
  11. : base(DbExpressionType.CaseWhen, type)
  12. {
  13. this._whenThenPairs = new ReadOnlyCollection<WhenThenExpressionPair>(whenThenPairs);
  14. this._else = @else;
  15. }
  16. public ReadOnlyCollection<WhenThenExpressionPair> WhenThenPairs { get { return this._whenThenPairs; } }
  17. public DbExpression Else { get { return this._else; } }
  18. public override T Accept<T>(DbExpressionVisitor<T> visitor)
  19. {
  20. return visitor.Visit(this);
  21. }
  22. public struct WhenThenExpressionPair
  23. {
  24. DbExpression _when;
  25. DbExpression _then;
  26. public WhenThenExpressionPair(DbExpression when, DbExpression then)
  27. {
  28. this._when = when;
  29. this._then = then;
  30. }
  31. public DbExpression When { get { return this._when; } }
  32. public DbExpression Then { get { return this._then; } }
  33. }
  34. }
  35. }