/// <summary> /// Creates a new instance of the <see cref="TemporalTableExpression" /> class representing temporal range operation. /// </summary> /// <param name="table"> A table source. </param> /// <param name="from">Start of the time range.</param> /// <param name="to">End of the time range.</param> /// <param name="temporalOperationType">Temporal operation type.</param> public TemporalTableExpression(ITableBase table, DateTime from, DateTime to, TemporalOperationType temporalOperationType) : base(table.Name.Substring(0, 1).ToLowerInvariant()) { Name = table.Name; Schema = table.Schema; From = from; To = to; TemporalOperationType = temporalOperationType; }
/// <summary> /// This is an internal API that supports the Entity Framework Core infrastructure and not subject to /// the same compatibility standards as public APIs. It may be changed or removed without notice in /// any release. You should only use it directly in your code with extreme caution and knowing that /// doing so can result in application failures when updating to a new Entity Framework Core release. /// </summary> public TemporalRangeQueryRootExpression( IEntityType entityType, DateTime from, DateTime to, TemporalOperationType temporalOperationType) : base(entityType) { From = from; To = to; TemporalOperationType = temporalOperationType; }
/// <summary> /// This is an internal API that supports the Entity Framework Core infrastructure and not subject to /// the same compatibility standards as public APIs. It may be changed or removed without notice in /// any release. You should only use it directly in your code with extreme caution and knowing that /// doing so can result in application failures when updating to a new Entity Framework Core release. /// </summary> public TemporalRangeQueryRootExpression( IAsyncQueryProvider queryProvider, IEntityType entityType, DateTime from, DateTime to, TemporalOperationType temporalOperationType) : base(queryProvider, entityType) { From = from; To = to; TemporalOperationType = temporalOperationType; }
private static Expression GenerateRangeTemporalQueryRoot <TEntity>( IQueryable source, DateTime from, DateTime to, TemporalOperationType temporalOperationType) { var queryRootExpression = (QueryRootExpression)source.Expression; var entityType = queryRootExpression.EntityType; return(new TemporalRangeQueryRootExpression( queryRootExpression.QueryProvider !, entityType, from: from, to: to, temporalOperationType: temporalOperationType)); }
private TemporalTableExpression( string name, string?schema, string?alias, DateTime?pointInTime, DateTime?from, DateTime?to, TemporalOperationType temporalOperationType) : base(alias) { Name = name; Schema = schema; PointInTime = pointInTime; From = from; To = to; TemporalOperationType = temporalOperationType; }