Атрибут для сравнения значения свойства с другим свойством модели. ## Пример использования ### Класс с валидацией для бронирования ```csharp public record Reservation { [Required] public DateTime CheckInDate { get; init; } [Required] [CompareTo(nameof(CheckInDate), Comparison.GreaterOrEqual, ErrorMessage = "Дата выезда должна быть позже или равна дате заезда.")] public DateTime CheckOutDate { get; init; } } ``` ## Описание - **CheckInDate** — дата заезда/начала. - **CheckOutDate** — дата выезда/окончания. - Атрибут `CompareTo` проверяет, что `CheckOutDate` больше или равна `CheckInDate`. ## Сообщение об ошибке Если условие не выполняется, выводится сообщение об ошибке, например: "Дата выезда должна быть позже или равна дате заезда." ## Доступные типы сравнения - **Less** — меньше. - **Equal** — равно. - **Greater** — больше. - **LessOrEqual** — меньше или равно. - **GreaterOrEqual** — больше или равно.