Class CaseValue
A sequence of if-then-else tests producing a single value.
[MessagePackObject(false)]
public sealed class CaseValue : Value, IEquatable<Value>
- Inheritance
-
CaseValue
- Implements
- Inherited Members
Remarks
More general than TernaryValue, which has a more efficient representation in some dbs.
Constructors
CaseValue(Value, params (Condition, Value)[])
public CaseValue(Value elseOperand, params (Condition, Value)[] conditionOperands)
Parameters
Fields
Conditions
[Key(1)]
public readonly (Condition, Value)[] Conditions
Field Value
Else
[Key(0)]
public readonly Value Else
Field Value
Properties
IsLiteral
Whether the value is self-paranthesing.
[IgnoreMember]
public override bool IsLiteral { get; }
Property Value
IsNullable
Whether the value can be NULL at runtime.
[IgnoreMember]
public override bool IsNullable { get; }
Property Value
Joins
Joins required to reach this value.
[IgnoreMember]
public override IEnumerable<Join> Joins { get; }
Property Value
Methods
Equals(Value?)
Indicates whether the current object is equal to another object of the same type.
public override bool Equals(Value? obj)
Parameters
objValue
Returns
GetHashCode()
Serves as the default hash function.
public override int GetHashCode()
Returns
- int
A hash code for the current object.
ToString()
Returns a string that represents the current object.
public override string ToString()
Returns
- string
A string that represents the current object.
Update(Value, (Condition, Value)[])
public CaseValue Update(Value elseOperand, (Condition, Value)[] conditionOperands)
Parameters
Returns
WithSource(Table, Table)
public override Value WithSource(Table oldSource, Table newSource)