Как работают параметры AutoQuery при поставке - PullRequest
1 голос
/ 07 февраля 2020

Я проверял пакет услуг и документацию. Что касается документации автозапроса, предварительный автозапрос и поставтоматический дизайн запроса показаны ниже. Где DTO не включает параметр «BookedAfter». Насколько я понимаю, в сценарии без автозапроса метод Get предоставит эти параметры для очевидных опций ввода запроса. К автозапросам у меня есть несколько вопросов. Во-первых, мне кажется, что если вы предоставите только определенные c параметры (вместо того, чтобы оставлять их широко открытыми), то только те из них будут разрешены для фильтрации (при условии, что DTO специфицирует c поля)? Это из коробки или нужно переопределить реализацию Auto Query? Аналогично приведенному ниже, в коде использовался пользовательский параметр «BookedAfter». Можно ли переопределить реализацию, сопоставить более конкретную формулировку параметра c со сценарием запроса поля DTO? И что нужно сделать, чтобы получить дополнительные возможности для запросов, которые появились из коробки? Я не смог найти пример из документации или сообщества.

[Route("/bookings/search")]
public class SeachBookings : IReturn<SeachBookingsResponse>
{      
    public DateTime BookedAfter { get; set; }
}

[Route("/bookings/search")]
public class SeachBookings : QueryDb<Booking>
{      
 public DateTime BookedAfter { get; set; }
}

// Types
public class Booking
{
    public int Id { get; set; }
    public int ShiftId { get; set; }
    public DateTime StartDate { get; set; }
    public DateTime EndDate { get; set; }
    public int Limit { get; set; }
}

1 Ответ

1 голос
/ 10 февраля 2020

Параметры Auto Query просто соответствуют правилам в сконфигурированных Неявных соглашениях , не имеет значения, определено ли свойство в DTO или нет, если вы не ограничите его с помощью EnableUntypedQueries = false , в этом случае он будет смотреть только на соглашения из явных свойств DTO.

Ваш BookedAfter соответствует Неявному соглашению :

{"%After%", GreaterThanFormat},

You Вы не ограничены предварительно настроенными соглашениями и можете добавлять / удалять свои собственные правила.

...