Class ArgumentField
A FieldInfo facade over a composite SQL expression (a CONCAT,
a CASE, an ArgumentFunction, or anything else built from Arguments).
Inherited Members
Namespace: SuperOffice.Data.SQL
Assembly: SoDataBase.dll
Syntax
public sealed class ArgumentField : FieldInfo, ICloneable, IEquatable<FieldInfo>
Remarks
Lets a derived value participate in the column/restriction machinery (return fields,
archive list bindings, RestrictionOperations, dialect rendering) as if it were
a regular field on Parent, while keeping the underlying expression accessible
through WrappedArgument. The wrapper carries the SELECT alias and inherits
the wrapped argument's DataType; it has no dictionary
Definition (HasNoDefinition is set), so callers that need
the dictionary-level type must read it via the SoField on the underlying field.
Constructors
ArgumentField(TableInfo, Argument)
A FieldInfo facade over a composite SQL expression (a CONCAT,
a CASE, an ArgumentFunction, or anything else built from Arguments).
Declaration
public ArgumentField(TableInfo parent, Argument wrappedArgument)
Parameters
| Type | Name | Description |
|---|---|---|
| TableInfo | parent | |
| Argument | wrappedArgument |
Remarks
Lets a derived value participate in the column/restriction machinery (return fields,
archive list bindings, RestrictionOperations, dialect rendering) as if it were
a regular field on Parent, while keeping the underlying expression accessible
through WrappedArgument. The wrapper carries the SELECT alias and inherits
the wrapped argument's DataType; it has no dictionary
Definition (HasNoDefinition is set), so callers that need
the dictionary-level type must read it via the SoField on the underlying field.
ArgumentField(TableInfo, Argument, string)
A FieldInfo facade over a composite SQL expression (a CONCAT,
a CASE, an ArgumentFunction, or anything else built from Arguments).
Declaration
public ArgumentField(TableInfo parent, Argument wrappedArgument, string alias)
Parameters
| Type | Name | Description |
|---|---|---|
| TableInfo | parent | |
| Argument | wrappedArgument | |
| string | alias |
Remarks
Lets a derived value participate in the column/restriction machinery (return fields,
archive list bindings, RestrictionOperations, dialect rendering) as if it were
a regular field on Parent, while keeping the underlying expression accessible
through WrappedArgument. The wrapper carries the SELECT alias and inherits
the wrapped argument's DataType; it has no dictionary
Definition (HasNoDefinition is set), so callers that need
the dictionary-level type must read it via the SoField on the underlying field.
Properties
WrappedArgument
A FieldInfo facade over a composite SQL expression (a CONCAT,
a CASE, an ArgumentFunction, or anything else built from Arguments).
Declaration
public Argument WrappedArgument { get; }
Property Value
| Type | Description |
|---|---|
| Argument |
Remarks
Lets a derived value participate in the column/restriction machinery (return fields,
archive list bindings, RestrictionOperations, dialect rendering) as if it were
a regular field on Parent, while keeping the underlying expression accessible
through WrappedArgument. The wrapper carries the SELECT alias and inherits
the wrapped argument's DataType; it has no dictionary
Definition (HasNoDefinition is set), so callers that need
the dictionary-level type must read it via the SoField on the underlying field.
Methods
Between(Argument, Argument)
returns a new instance of the Between operator, based on the arguments provided.
Declaration
public override Between Between(Argument min, Argument max)
Parameters
| Type | Name | Description |
|---|---|---|
| Argument | min | Minimum value |
| Argument | max | Maximum value |
Returns
| Type | Description |
|---|---|
| Between | a new instance of the Between operator, based on the argument provided. |
Overrides
Remarks
Lets a derived value participate in the column/restriction machinery (return fields,
archive list bindings, RestrictionOperations, dialect rendering) as if it were
a regular field on Parent, while keeping the underlying expression accessible
through WrappedArgument. The wrapper carries the SELECT alias and inherits
the wrapped argument's DataType; it has no dictionary
Definition (HasNoDefinition is set), so callers that need
the dictionary-level type must read it via the SoField on the underlying field.
Clone()
Memberwise Clone of this object
Declaration
public override object Clone()
Returns
| Type | Description |
|---|---|
| object | Copy of the fieldinfo that points to the same parent table. |
Overrides
Remarks
Lets a derived value participate in the column/restriction machinery (return fields,
archive list bindings, RestrictionOperations, dialect rendering) as if it were
a regular field on Parent, while keeping the underlying expression accessible
through WrappedArgument. The wrapper carries the SELECT alias and inherits
the wrapped argument's DataType; it has no dictionary
Definition (HasNoDefinition is set), so callers that need
the dictionary-level type must read it via the SoField on the underlying field.
Equal(Argument)
returns a new instance of the Equal operator, based on the argument provided.
Declaration
public override Equal Equal(Argument argument)
Parameters
| Type | Name | Description |
|---|---|---|
| Argument | argument | The argument. |
Returns
| Type | Description |
|---|---|
| Equal | a new instance of the Equal operator, based on the argument provided |
Overrides
Remarks
Lets a derived value participate in the column/restriction machinery (return fields,
archive list bindings, RestrictionOperations, dialect rendering) as if it were
a regular field on Parent, while keeping the underlying expression accessible
through WrappedArgument. The wrapper carries the SELECT alias and inherits
the wrapped argument's DataType; it has no dictionary
Definition (HasNoDefinition is set), so callers that need
the dictionary-level type must read it via the SoField on the underlying field.
GetMainField()
Information about a database field.
Declaration
public override FieldInfo GetMainField()
Returns
| Type | Description |
|---|---|
| FieldInfo | Information about the database field |
Overrides
Remarks
Lets a derived value participate in the column/restriction machinery (return fields,
archive list bindings, RestrictionOperations, dialect rendering) as if it were
a regular field on Parent, while keeping the underlying expression accessible
through WrappedArgument. The wrapper carries the SELECT alias and inherits
the wrapped argument's DataType; it has no dictionary
Definition (HasNoDefinition is set), so callers that need
the dictionary-level type must read it via the SoField on the underlying field.
GetReferencedFields()
Enumerate every FieldInfo referenced inside this argument, recursively.
Declaration
public override IEnumerable<FieldInfo> GetReferencedFields()
Returns
| Type | Description |
|---|---|
| IEnumerable<FieldInfo> |
Overrides
Remarks
Used by Select.GetTableInfos to anchor joins for compound arguments (CASE, CONCAT, math, aggregations, function calls) that wrap fields from multiple tables. Unlike GetMainField(), which returns at most one representative field, this enumerates them all so every referenced table is discovered.
GreaterThan(Argument)
returns a new instance of the GreaterThan operator, based on the argument provided.
Declaration
public override GreaterThan GreaterThan(Argument argument)
Parameters
| Type | Name | Description |
|---|---|---|
| Argument | argument | The argument. |
Returns
| Type | Description |
|---|---|
| GreaterThan | a new instance of the GreaterThan operator, based on the argument provided |
Overrides
Remarks
Lets a derived value participate in the column/restriction machinery (return fields,
archive list bindings, RestrictionOperations, dialect rendering) as if it were
a regular field on Parent, while keeping the underlying expression accessible
through WrappedArgument. The wrapper carries the SELECT alias and inherits
the wrapped argument's DataType; it has no dictionary
Definition (HasNoDefinition is set), so callers that need
the dictionary-level type must read it via the SoField on the underlying field.
GreaterThanOrEqual(Argument)
returns a new instance of the GreaterThanOrEqual operator, based on the argument provided.
Declaration
public override GreaterThanOrEqual GreaterThanOrEqual(Argument argument)
Parameters
| Type | Name | Description |
|---|---|---|
| Argument | argument | The argument. |
Returns
| Type | Description |
|---|---|
| GreaterThanOrEqual | a new instance of the GreaterThanOrEqual operator, based on the argument provided |
Overrides
Remarks
Lets a derived value participate in the column/restriction machinery (return fields,
archive list bindings, RestrictionOperations, dialect rendering) as if it were
a regular field on Parent, while keeping the underlying expression accessible
through WrappedArgument. The wrapper carries the SELECT alias and inherits
the wrapped argument's DataType; it has no dictionary
Definition (HasNoDefinition is set), so callers that need
the dictionary-level type must read it via the SoField on the underlying field.
HasAll(params Argument[])
returns a new instance of the HasAll(params Argument[]) operator, based on the argument array provided.
Declaration
public override HasAll HasAll(params Argument[] arg)
Parameters
| Type | Name | Description |
|---|---|---|
| Argument[] | arg | The argument array |
Returns
| Type | Description |
|---|---|
| HasAll | a new instance of the Between operator, based on the argument array provided. |
Overrides
Remarks
Lets a derived value participate in the column/restriction machinery (return fields,
archive list bindings, RestrictionOperations, dialect rendering) as if it were
a regular field on Parent, while keeping the underlying expression accessible
through WrappedArgument. The wrapper carries the SELECT alias and inherits
the wrapped argument's DataType; it has no dictionary
Definition (HasNoDefinition is set), so callers that need
the dictionary-level type must read it via the SoField on the underlying field.
HasAny(params Argument[])
returns a new instance of the HasAny(params Argument[]) operator, based on the argument array provided.
Declaration
public override HasAny HasAny(params Argument[] arg)
Parameters
| Type | Name | Description |
|---|---|---|
| Argument[] | arg | The argument array |
Returns
| Type | Description |
|---|---|
| HasAny | a new instance of the Between operator, based on the argument array provided. |
Overrides
Remarks
Lets a derived value participate in the column/restriction machinery (return fields,
archive list bindings, RestrictionOperations, dialect rendering) as if it were
a regular field on Parent, while keeping the underlying expression accessible
through WrappedArgument. The wrapper carries the SELECT alias and inherits
the wrapped argument's DataType; it has no dictionary
Definition (HasNoDefinition is set), so callers that need
the dictionary-level type must read it via the SoField on the underlying field.
HasFlag(Argument)
returns a new instance of the HasFlag operator, based on the argument provided.
Declaration
public override HasFlag HasFlag(Argument arg)
Parameters
| Type | Name | Description |
|---|---|---|
| Argument | arg | The argument |
Returns
| Type | Description |
|---|---|
| HasFlag | a new instance of the HasFlag operator, based on the argument provided. |
Overrides
Remarks
Lets a derived value participate in the column/restriction machinery (return fields,
archive list bindings, RestrictionOperations, dialect rendering) as if it were
a regular field on Parent, while keeping the underlying expression accessible
through WrappedArgument. The wrapper carries the SELECT alias and inherits
the wrapped argument's DataType; it has no dictionary
Definition (HasNoDefinition is set), so callers that need
the dictionary-level type must read it via the SoField on the underlying field.
HasNoFlag(Argument)
returns a new instance of the HasNoFlag operator, based on the argument provided.
Declaration
public override HasNoFlag HasNoFlag(Argument arg)
Parameters
| Type | Name | Description |
|---|---|---|
| Argument | arg | The argument |
Returns
| Type | Description |
|---|---|
| HasNoFlag | a new instance of the HasNoFlag operator, based on the argument provided. |
Overrides
Remarks
Lets a derived value participate in the column/restriction machinery (return fields,
archive list bindings, RestrictionOperations, dialect rendering) as if it were
a regular field on Parent, while keeping the underlying expression accessible
through WrappedArgument. The wrapper carries the SELECT alias and inherits
the wrapped argument's DataType; it has no dictionary
Definition (HasNoDefinition is set), so callers that need
the dictionary-level type must read it via the SoField on the underlying field.
In(params Argument[])
returns a new instance of the In operator, based on the argument array provided.
Declaration
public override In In(params Argument[] arg)
Parameters
| Type | Name | Description |
|---|---|---|
| Argument[] | arg | The argument array |
Returns
| Type | Description |
|---|---|
| In | a new instance of the Between operator, based on the argument array provided. |
Overrides
Remarks
Lets a derived value participate in the column/restriction machinery (return fields,
archive list bindings, RestrictionOperations, dialect rendering) as if it were
a regular field on Parent, while keeping the underlying expression accessible
through WrappedArgument. The wrapper carries the SELECT alias and inherits
the wrapped argument's DataType; it has no dictionary
Definition (HasNoDefinition is set), so callers that need
the dictionary-level type must read it via the SoField on the underlying field.
IsNotNull()
returns a new instance of the IsNotNull operator, that determines whether this computed field is not null.
Declaration
public override IsNotNull IsNotNull()
Returns
| Type | Description |
|---|---|
| IsNotNull | a new instance of the IsNotNull operator. |
Overrides
Remarks
See IsNull() for why this passes this rather than the wrapped argument.
IsNull()
returns a new instance of the IsNull operator, that determines whether this computed field is null.
Declaration
public override IsNull IsNull()
Returns
| Type | Description |
|---|---|
| IsNull | a new instance of the IsNull operator. |
Overrides
Remarks
Unlike the comparison operators, this passes this (the wrapper) rather than the
_wrappedArgument: NullOperators only accepts a FieldInfo
as its left operand, and the wrapped argument (e.g. a Concat) is not one.
SQL is still correct because ToSql(ArgumentField) expands to the wrapped expression,
yielding (<expression>) IS NULL.
LessThan(Argument)
returns a new instance of the LessThan operator, based on the argument provided.
Declaration
public override LessThan LessThan(Argument argument)
Parameters
| Type | Name | Description |
|---|---|---|
| Argument | argument | The argument. |
Returns
| Type | Description |
|---|---|
| LessThan | a new instance of the LessThan operator, based on the argument provided |
Overrides
Remarks
Lets a derived value participate in the column/restriction machinery (return fields,
archive list bindings, RestrictionOperations, dialect rendering) as if it were
a regular field on Parent, while keeping the underlying expression accessible
through WrappedArgument. The wrapper carries the SELECT alias and inherits
the wrapped argument's DataType; it has no dictionary
Definition (HasNoDefinition is set), so callers that need
the dictionary-level type must read it via the SoField on the underlying field.
LessThanOrEqual(Argument)
returns a new instance of the LessThan operator, based on the argument provided.
Declaration
public override LessThanOrEqual LessThanOrEqual(Argument argument)
Parameters
| Type | Name | Description |
|---|---|---|
| Argument | argument | The argument. |
Returns
| Type | Description |
|---|---|
| LessThanOrEqual | a new instance of the LessThanOrEqual operator, based on the argument provided |
Overrides
Remarks
Lets a derived value participate in the column/restriction machinery (return fields,
archive list bindings, RestrictionOperations, dialect rendering) as if it were
a regular field on Parent, while keeping the underlying expression accessible
through WrappedArgument. The wrapper carries the SELECT alias and inherits
the wrapped argument's DataType; it has no dictionary
Definition (HasNoDefinition is set), so callers that need
the dictionary-level type must read it via the SoField on the underlying field.
Like(Argument)
returns a new instance of the Like operator, based on the argument provided.
Declaration
public override Like Like(Argument argument)
Parameters
| Type | Name | Description |
|---|---|---|
| Argument | argument | The argument. |
Returns
| Type | Description |
|---|---|
| Like | a new instance of the Like operator, based on the argument provided |
Overrides
Remarks
Lets a derived value participate in the column/restriction machinery (return fields,
archive list bindings, RestrictionOperations, dialect rendering) as if it were
a regular field on Parent, while keeping the underlying expression accessible
through WrappedArgument. The wrapper carries the SELECT alias and inherits
the wrapped argument's DataType; it has no dictionary
Definition (HasNoDefinition is set), so callers that need
the dictionary-level type must read it via the SoField on the underlying field.
Like(string)
returns a new instance of the Like operator, based on the argument provided.
Declaration
public override Like Like(string value)
Parameters
| Type | Name | Description |
|---|---|---|
| string | value |
Returns
| Type | Description |
|---|---|
| Like | a new instance of the Like operator, based on the argument provided |
Overrides
Remarks
Lets a derived value participate in the column/restriction machinery (return fields,
archive list bindings, RestrictionOperations, dialect rendering) as if it were
a regular field on Parent, while keeping the underlying expression accessible
through WrappedArgument. The wrapper carries the SELECT alias and inherits
the wrapped argument's DataType; it has no dictionary
Definition (HasNoDefinition is set), so callers that need
the dictionary-level type must read it via the SoField on the underlying field.
MissingAll(params Argument[])
returns a new instance of the MissingAll(params Argument[]) operator, based on the argument array provided.
Declaration
public override MissingAll MissingAll(params Argument[] arg)
Parameters
| Type | Name | Description |
|---|---|---|
| Argument[] | arg | The argument array |
Returns
| Type | Description |
|---|---|
| MissingAll | a new instance of the Between operator, based on the argument array provided. |
Overrides
Remarks
Lets a derived value participate in the column/restriction machinery (return fields,
archive list bindings, RestrictionOperations, dialect rendering) as if it were
a regular field on Parent, while keeping the underlying expression accessible
through WrappedArgument. The wrapper carries the SELECT alias and inherits
the wrapped argument's DataType; it has no dictionary
Definition (HasNoDefinition is set), so callers that need
the dictionary-level type must read it via the SoField on the underlying field.
MissingAny(params Argument[])
returns a new instance of the MissingAny(params Argument[]) operator, based on the argument array provided.
Declaration
public override MissingAny MissingAny(params Argument[] arg)
Parameters
| Type | Name | Description |
|---|---|---|
| Argument[] | arg | The argument array |
Returns
| Type | Description |
|---|---|
| MissingAny | a new instance of the Between operator, based on the argument array provided. |
Overrides
Remarks
Lets a derived value participate in the column/restriction machinery (return fields,
archive list bindings, RestrictionOperations, dialect rendering) as if it were
a regular field on Parent, while keeping the underlying expression accessible
through WrappedArgument. The wrapper carries the SELECT alias and inherits
the wrapped argument's DataType; it has no dictionary
Definition (HasNoDefinition is set), so callers that need
the dictionary-level type must read it via the SoField on the underlying field.
NotBetween(Argument, Argument)
returns a new instance of the NotBetween operator, based on the arguments provided.
Declaration
public override NotBetween NotBetween(Argument min, Argument max)
Parameters
| Type | Name | Description |
|---|---|---|
| Argument | min | Minimum value |
| Argument | max | Maximum value |
Returns
| Type | Description |
|---|---|
| NotBetween | a new instance of the NotBetween operator, based on the argument provided. |
Overrides
Remarks
Lets a derived value participate in the column/restriction machinery (return fields,
archive list bindings, RestrictionOperations, dialect rendering) as if it were
a regular field on Parent, while keeping the underlying expression accessible
through WrappedArgument. The wrapper carries the SELECT alias and inherits
the wrapped argument's DataType; it has no dictionary
Definition (HasNoDefinition is set), so callers that need
the dictionary-level type must read it via the SoField on the underlying field.
NotIn(params Argument[])
returns a new instance of the NotIn operator, based on the argument array provided.
Declaration
public override NotIn NotIn(params Argument[] arg)
Parameters
| Type | Name | Description |
|---|---|---|
| Argument[] | arg | The argument array |
Returns
| Type | Description |
|---|---|
| NotIn | a new instance of the NotIn operator, based on the argument array provided. |
Overrides
Remarks
Lets a derived value participate in the column/restriction machinery (return fields,
archive list bindings, RestrictionOperations, dialect rendering) as if it were
a regular field on Parent, while keeping the underlying expression accessible
through WrappedArgument. The wrapper carries the SELECT alias and inherits
the wrapped argument's DataType; it has no dictionary
Definition (HasNoDefinition is set), so callers that need
the dictionary-level type must read it via the SoField on the underlying field.
NotLike(Argument)
returns a new instance of the NotLike operator, based on the argument provided.
Declaration
public override NotLike NotLike(Argument argument)
Parameters
| Type | Name | Description |
|---|---|---|
| Argument | argument | string value |
Returns
| Type | Description |
|---|---|
| NotLike | a new instance of the NotLike operator, based on the argument provided |
Overrides
Remarks
Lets a derived value participate in the column/restriction machinery (return fields,
archive list bindings, RestrictionOperations, dialect rendering) as if it were
a regular field on Parent, while keeping the underlying expression accessible
through WrappedArgument. The wrapper carries the SELECT alias and inherits
the wrapped argument's DataType; it has no dictionary
Definition (HasNoDefinition is set), so callers that need
the dictionary-level type must read it via the SoField on the underlying field.
UnEqual(Argument)
returns a new instance of the UnEqual operator, based on the argument provided.
Declaration
public override UnEqual UnEqual(Argument argument)
Parameters
| Type | Name | Description |
|---|---|---|
| Argument | argument | The argument. |
Returns
| Type | Description |
|---|---|
| UnEqual | a new instance of the UnEqual operator, based on the argument provided |
Overrides
Remarks
Lets a derived value participate in the column/restriction machinery (return fields,
archive list bindings, RestrictionOperations, dialect rendering) as if it were
a regular field on Parent, while keeping the underlying expression accessible
through WrappedArgument. The wrapper carries the SELECT alias and inherits
the wrapped argument's DataType; it has no dictionary
Definition (HasNoDefinition is set), so callers that need
the dictionary-level type must read it via the SoField on the underlying field.