Table of Contents

Class ClickHouseEntityBuilderExtensions

Namespace
NextORM.ClickHouse
Assembly
nextorm.clickhouse.dll

ClickHouse-only fluent members of EntityBuilder<TEntity>, removed from the common nextorm package and re-exposed here as extension methods. Add using NextORM.ClickHouse; to keep the fluent chain unchanged on a ClickHouse provider. The render-time dialect gating (and the thrown exceptions) is unchanged.

public static class ClickHouseEntityBuilderExtensions
Inheritance
ClickHouseEntityBuilderExtensions
Inherited Members

Methods

AntiJoin(EntityBuilder, EntityBuilder, Expression<Func<TableAlias, TableAlias, bool>>, Action<JoinOptions>?)

ClickHouse LEFT ANTI JOIN in named-table (TableAlias) mode.

public static EntityBuilder AntiJoin(this EntityBuilder builder, EntityBuilder from, Expression<Func<TableAlias, TableAlias, bool>> joinCondition, Action<JoinOptions>? options = null)

Parameters

builder EntityBuilder
from EntityBuilder
joinCondition Expression<Func<TableAlias, TableAlias, bool>>
options Action<JoinOptions>

Returns

EntityBuilder

AntiJoin<TJoinEntity>(EntityBuilder, EntityBuilder<TJoinEntity>, Expression<Func<TableAlias, TJoinEntity, bool>>, Action<JoinOptions>?)

ClickHouse LEFT ANTI JOIN in named-table (TableAlias) mode.

public static EntityBuilder AntiJoin<TJoinEntity>(this EntityBuilder builder, EntityBuilder<TJoinEntity> join, Expression<Func<TableAlias, TJoinEntity, bool>> joinCondition, Action<JoinOptions>? options = null)

Parameters

builder EntityBuilder
join EntityBuilder<TJoinEntity>
joinCondition Expression<Func<TableAlias, TJoinEntity, bool>>
options Action<JoinOptions>

Returns

EntityBuilder

Type Parameters

TJoinEntity

AntiJoin<TEntity, TJoinEntity>(EntityBuilder<TEntity>, EntityBuilder<TJoinEntity>, Expression<Func<TEntity, TJoinEntity, bool>>, Action<JoinOptions>?)

ClickHouse LEFT ANTI JOIN.

public static EntityBuilder<TEntity> AntiJoin<TEntity, TJoinEntity>(this EntityBuilder<TEntity> builder, EntityBuilder<TJoinEntity> join, Expression<Func<TEntity, TJoinEntity, bool>> joinCondition, Action<JoinOptions>? options = null)

Parameters

builder EntityBuilder<TEntity>
join EntityBuilder<TJoinEntity>
joinCondition Expression<Func<TEntity, TJoinEntity, bool>>
options Action<JoinOptions>

Returns

EntityBuilder<TEntity>

Type Parameters

TEntity
TJoinEntity

AntiJoin<TEntity, TJoinEntity>(EntityBuilder<TEntity>, QueryCommand<TJoinEntity>, Expression<Func<TEntity, TJoinEntity, bool>>, Action<JoinOptions>?)

ClickHouse LEFT ANTI JOIN over a subquery.

public static EntityBuilder<TEntity> AntiJoin<TEntity, TJoinEntity>(this EntityBuilder<TEntity> builder, QueryCommand<TJoinEntity> query, Expression<Func<TEntity, TJoinEntity, bool>> joinCondition, Action<JoinOptions>? options = null)

Parameters

builder EntityBuilder<TEntity>
query QueryCommand<TJoinEntity>
joinCondition Expression<Func<TEntity, TJoinEntity, bool>>
options Action<JoinOptions>

Returns

EntityBuilder<TEntity>

Type Parameters

TEntity
TJoinEntity

ArrayJoinElement<TEntity, TElement>(EntityBuilder<TEntity>, Expression<Func<TEntity, IEnumerable<TElement>>>)

ClickHouse ARRAY JOIN exposing the expanded element as p.Element.

public static EntityBuilder<ArrayJoinProjection<TEntity, TElement>> ArrayJoinElement<TEntity, TElement>(this EntityBuilder<TEntity> builder, Expression<Func<TEntity, IEnumerable<TElement>>> array)

Parameters

builder EntityBuilder<TEntity>
array Expression<Func<TEntity, IEnumerable<TElement>>>

Returns

EntityBuilder<ArrayJoinProjection<TEntity, TElement>>

Type Parameters

TEntity
TElement

ArrayJoin<TEntity, TArray>(EntityBuilder<TEntity>, Expression<Func<TEntity, TArray>>)

ClickHouse ARRAY JOIN over an array expression.

public static EntityBuilder<TEntity> ArrayJoin<TEntity, TArray>(this EntityBuilder<TEntity> builder, Expression<Func<TEntity, TArray>> array)

Parameters

builder EntityBuilder<TEntity>
array Expression<Func<TEntity, TArray>>

Returns

EntityBuilder<TEntity>

Type Parameters

TEntity
TArray

Final<TEntity>(EntityBuilder<TEntity>)

ClickHouse FINAL modifier on the primary table.

public static EntityBuilder<TEntity> Final<TEntity>(this EntityBuilder<TEntity> builder)

Parameters

builder EntityBuilder<TEntity>

Returns

EntityBuilder<TEntity>

Type Parameters

TEntity

Global(JoinOptions)

ClickHouse GLOBAL join modifier.

public static JoinOptions Global(this JoinOptions options)

Parameters

options JoinOptions

Returns

JoinOptions

LeftArrayJoinElement<TEntity, TElement>(EntityBuilder<TEntity>, Expression<Func<TEntity, IEnumerable<TElement>>>)

ClickHouse LEFT ARRAY JOIN exposing the expanded element as p.Element.

public static EntityBuilder<ArrayJoinProjection<TEntity, TElement>> LeftArrayJoinElement<TEntity, TElement>(this EntityBuilder<TEntity> builder, Expression<Func<TEntity, IEnumerable<TElement>>> array)

Parameters

builder EntityBuilder<TEntity>
array Expression<Func<TEntity, IEnumerable<TElement>>>

Returns

EntityBuilder<ArrayJoinProjection<TEntity, TElement>>

Type Parameters

TEntity
TElement

LeftArrayJoin<TEntity, TArray>(EntityBuilder<TEntity>, Expression<Func<TEntity, TArray>>)

ClickHouse LEFT ARRAY JOIN over an array expression.

public static EntityBuilder<TEntity> LeftArrayJoin<TEntity, TArray>(this EntityBuilder<TEntity> builder, Expression<Func<TEntity, TArray>> array)

Parameters

builder EntityBuilder<TEntity>
array Expression<Func<TEntity, TArray>>

Returns

EntityBuilder<TEntity>

Type Parameters

TEntity
TArray

LimitBy<TEntity, TResult>(EntityBuilder<TEntity>, int, int, Expression<Func<TEntity, TResult>>)

ClickHouse LIMIT offset, n BY expr clause.

public static EntityBuilder<TEntity> LimitBy<TEntity, TResult>(this EntityBuilder<TEntity> builder, int limit, int offset, Expression<Func<TEntity, TResult>> exp)

Parameters

builder EntityBuilder<TEntity>
limit int
offset int
exp Expression<Func<TEntity, TResult>>

Returns

EntityBuilder<TEntity>

Type Parameters

TEntity
TResult

LimitBy<TEntity, TResult>(EntityBuilder<TEntity>, int, Expression<Func<TEntity, TResult>>)

ClickHouse LIMIT n BY expr clause.

public static EntityBuilder<TEntity> LimitBy<TEntity, TResult>(this EntityBuilder<TEntity> builder, int limit, Expression<Func<TEntity, TResult>> exp)

Parameters

builder EntityBuilder<TEntity>
limit int
exp Expression<Func<TEntity, TResult>>

Returns

EntityBuilder<TEntity>

Type Parameters

TEntity
TResult

PasteJoin(EntityBuilder, EntityBuilder, Action<JoinOptions>?)

ClickHouse PASTE JOIN in named-table (TableAlias) mode.

public static JoinedEntityBuilder<TableAlias, TableAlias> PasteJoin(this EntityBuilder builder, EntityBuilder from, Action<JoinOptions>? options = null)

Parameters

builder EntityBuilder
from EntityBuilder
options Action<JoinOptions>

Returns

JoinedEntityBuilder<TableAlias, TableAlias>

PasteJoin<TJoinEntity>(EntityBuilder, EntityBuilder<TJoinEntity>, Action<JoinOptions>?)

ClickHouse PASTE JOIN in named-table (TableAlias) mode.

public static JoinedEntityBuilder<TableAlias, TJoinEntity> PasteJoin<TJoinEntity>(this EntityBuilder builder, EntityBuilder<TJoinEntity> join, Action<JoinOptions>? options = null)

Parameters

builder EntityBuilder
join EntityBuilder<TJoinEntity>
options Action<JoinOptions>

Returns

JoinedEntityBuilder<TableAlias, TJoinEntity>

Type Parameters

TJoinEntity

PasteJoin<TEntity, TJoinEntity>(EntityBuilder<TEntity>, EntityBuilder<TJoinEntity>, Action<JoinOptions>?)

ClickHouse PASTE JOIN.

public static JoinedEntityBuilder<TEntity, TJoinEntity> PasteJoin<TEntity, TJoinEntity>(this EntityBuilder<TEntity> builder, EntityBuilder<TJoinEntity> join, Action<JoinOptions>? options = null)

Parameters

builder EntityBuilder<TEntity>
join EntityBuilder<TJoinEntity>
options Action<JoinOptions>

Returns

JoinedEntityBuilder<TEntity, TJoinEntity>

Type Parameters

TEntity
TJoinEntity

PasteJoin<TEntity, TJoinEntity>(EntityBuilder<TEntity>, QueryCommand<TJoinEntity>, Action<JoinOptions>?)

ClickHouse PASTE JOIN over a subquery.

public static JoinedEntityBuilder<TEntity, TJoinEntity> PasteJoin<TEntity, TJoinEntity>(this EntityBuilder<TEntity> builder, QueryCommand<TJoinEntity> query, Action<JoinOptions>? options = null)

Parameters

builder EntityBuilder<TEntity>
query QueryCommand<TJoinEntity>
options Action<JoinOptions>

Returns

JoinedEntityBuilder<TEntity, TJoinEntity>

Type Parameters

TEntity
TJoinEntity

PreWhere<TEntity>(EntityBuilder<TEntity>, Expression<Func<TEntity, bool>>)

ClickHouse PREWHERE predicate.

public static EntityBuilder<TEntity> PreWhere<TEntity>(this EntityBuilder<TEntity> builder, Expression<Func<TEntity, bool>> condition)

Parameters

builder EntityBuilder<TEntity>
condition Expression<Func<TEntity, bool>>

Returns

EntityBuilder<TEntity>

Type Parameters

TEntity

Sample(FromOptions, double)

ClickHouse SAMPLE ratio modifier.

public static FromOptions Sample(this FromOptions options, double ratio)

Parameters

options FromOptions
ratio double

Returns

FromOptions

Sample(FromOptions, double, double)

ClickHouse SAMPLE ratio OFFSET offset modifier.

public static FromOptions Sample(this FromOptions options, double ratio, double offset)

Parameters

options FromOptions
ratio double
offset double

Returns

FromOptions

SemiJoin(EntityBuilder, EntityBuilder, Expression<Func<TableAlias, TableAlias, bool>>, Action<JoinOptions>?)

ClickHouse LEFT SEMI JOIN in named-table (TableAlias) mode.

public static EntityBuilder SemiJoin(this EntityBuilder builder, EntityBuilder from, Expression<Func<TableAlias, TableAlias, bool>> joinCondition, Action<JoinOptions>? options = null)

Parameters

builder EntityBuilder
from EntityBuilder
joinCondition Expression<Func<TableAlias, TableAlias, bool>>
options Action<JoinOptions>

Returns

EntityBuilder

SemiJoin<TJoinEntity>(EntityBuilder, EntityBuilder<TJoinEntity>, Expression<Func<TableAlias, TJoinEntity, bool>>, Action<JoinOptions>?)

ClickHouse LEFT SEMI JOIN in named-table (TableAlias) mode.

public static EntityBuilder SemiJoin<TJoinEntity>(this EntityBuilder builder, EntityBuilder<TJoinEntity> join, Expression<Func<TableAlias, TJoinEntity, bool>> joinCondition, Action<JoinOptions>? options = null)

Parameters

builder EntityBuilder
join EntityBuilder<TJoinEntity>
joinCondition Expression<Func<TableAlias, TJoinEntity, bool>>
options Action<JoinOptions>

Returns

EntityBuilder

Type Parameters

TJoinEntity

SemiJoin<TEntity, TJoinEntity>(EntityBuilder<TEntity>, EntityBuilder<TJoinEntity>, Expression<Func<TEntity, TJoinEntity, bool>>, Action<JoinOptions>?)

ClickHouse LEFT SEMI JOIN.

public static EntityBuilder<TEntity> SemiJoin<TEntity, TJoinEntity>(this EntityBuilder<TEntity> builder, EntityBuilder<TJoinEntity> join, Expression<Func<TEntity, TJoinEntity, bool>> joinCondition, Action<JoinOptions>? options = null)

Parameters

builder EntityBuilder<TEntity>
join EntityBuilder<TJoinEntity>
joinCondition Expression<Func<TEntity, TJoinEntity, bool>>
options Action<JoinOptions>

Returns

EntityBuilder<TEntity>

Type Parameters

TEntity
TJoinEntity

SemiJoin<TEntity, TJoinEntity>(EntityBuilder<TEntity>, QueryCommand<TJoinEntity>, Expression<Func<TEntity, TJoinEntity, bool>>, Action<JoinOptions>?)

ClickHouse LEFT SEMI JOIN over a subquery.

public static EntityBuilder<TEntity> SemiJoin<TEntity, TJoinEntity>(this EntityBuilder<TEntity> builder, QueryCommand<TJoinEntity> query, Expression<Func<TEntity, TJoinEntity, bool>> joinCondition, Action<JoinOptions>? options = null)

Parameters

builder EntityBuilder<TEntity>
query QueryCommand<TJoinEntity>
joinCondition Expression<Func<TEntity, TJoinEntity, bool>>
options Action<JoinOptions>

Returns

EntityBuilder<TEntity>

Type Parameters

TEntity
TJoinEntity

Settings<TEntity>(EntityBuilder<TEntity>, params (string Key, string Value)[])

Trailing ClickHouse SETTINGS key = value clause.

public static EntityBuilder<TEntity> Settings<TEntity>(this EntityBuilder<TEntity> builder, params (string Key, string Value)[] settings)

Parameters

builder EntityBuilder<TEntity>
settings (string Key, string Value)[]

Returns

EntityBuilder<TEntity>

Type Parameters

TEntity

WithStrictness(JoinOptions, JoinStrictness)

ClickHouse join modifier (ANY/ALL/ASOF).

public static JoinOptions WithStrictness(this JoinOptions options, JoinStrictness strictness)

Parameters

options JoinOptions
strictness JoinStrictness

Returns

JoinOptions

WithTotals<TEntity>(EntityBuilder<TEntity>)

ClickHouse WITH TOTALS grouping modifier.

public static EntityBuilder<TEntity> WithTotals<TEntity>(this EntityBuilder<TEntity> builder)

Parameters

builder EntityBuilder<TEntity>

Returns

EntityBuilder<TEntity>

Type Parameters

TEntity