Wenn man Zeitraumfelder programmieren möchte, ist wie folgt vorzugehen:

[OrmDateRangeField(nameof(Start), nameof(End))]
[MemberDesignTimeVisibility(false), HideInFilterEditor]
public Range<DateTime> Time
{
    get => new Range<DateTime>(Start, End);
    set => (Start, End) = value;
}

oder, falls NULL-Werte zulässig sind:

[OrmDateRangeField(nameof(Start), nameof(End))]
[MemberDesignTimeVisibility(false), HideInFilterEditor]
public Range<DateTime>? Time
{
    get => Start.HasValue && End.HasValue ? new Range<DateTime>(Start, End) : default;
    set => (Start, End) = value.HasValue ? (value.Value.From, value.Value.To) : default((DateTime?, DateTime?));
}

Das neue Property kann nicht im XPO-Designer angelegt werden. Es muss in der Klasse ausprogrammiert werden. Die beiden Unterfelder Start und End müssen wie bisher ganz normal existieren und vom Datentyp DateTime oder DateTime? sein. Eine nachträgliche Gruppierung von zwei existierende Datumsspalten zu einem Zeitraum erfordert keine Mirgation. Eine Datumsspalte kann nur einem Zeitraum hinzugefügt werden.