/// <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;
 }
Beispiel #4
0
        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;
 }