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)))); }
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?)))); }
public override Expression GenerateCodeLiteral(object value) => TimestampTzInstantMapping.GenerateCodeLiteral((Instant)value);