コード例 #1
0
    public override Expression GenerateCodeLiteral(object value)
    {
        var zonedDateTime = (ZonedDateTime)value;

        return(Expression.New(
                   Constructor,
                   TimestampTzInstantMapping.GenerateCodeLiteral(zonedDateTime.ToInstant()),
                   Expression.Call(
                       Expression.MakeMemberAccess(
                           null,
                           TzdbDateTimeZoneSourceDefaultMember),
                       ForIdMethod,
                       Expression.Constant(zonedDateTime.Zone.Id))));
    }
コード例 #2
0
    public override Expression GenerateCodeLiteral(object value)
    {
        var interval = (Interval)value;

        return(interval.HasStart && interval.HasEnd
            ? Expression.New(
                   _constructor,
                   TimestampTzInstantMapping.GenerateCodeLiteral(interval.Start),
                   TimestampTzInstantMapping.GenerateCodeLiteral(interval.End))
            : Expression.New(
                   _constructorWithNulls,
                   interval.HasStart
                    ? Expression.Convert(
                       TimestampTzInstantMapping.GenerateCodeLiteral(interval.Start),
                       typeof(Instant?))
                       : Expression.Constant(null, typeof(Instant?)),
                       interval.HasEnd
                    ? Expression.Convert(
                           TimestampTzInstantMapping.GenerateCodeLiteral(interval.End),
                           typeof(Instant?))
                           : Expression.Constant(null, typeof(Instant?))));
    }
コード例 #3
0
 public override Expression GenerateCodeLiteral(object value)
 => TimestampTzInstantMapping.GenerateCodeLiteral((Instant)value);