Автозапрос с ResponseDTO в ServiceStack - PullRequest
1 голос
/ 09 апреля 2019

Я создал функцию AutoQuery в своем API с использованием следующего кода.

[Route("/cars/search")]
public class SearchCars : QueryDb<Car, CarDto>,  IJoin<Car, Equipment, Colour, FuelType, Manufacturer>
{
    public List<int> EquipmentIds { get; set; }
    public List<int> ManufacturerIds { get; set; }
    public List<int> ColourIds { get; set; }
}

CarDto выглядит следующим образом

public class CarDto
{
    public int Id { get; set; }

    public List<Equipment> Equipment { get; set; }

    public Manufacturer Manufacturer { get; set; }
    public int ManufactorId { get; set; }

    public FuelType FuelType { get; set; }
    public int FuelTypeId { get; set; }

    public byte[] ProfileImage { get; set; }
}

Мне было интересно, есть ли какие-то конкретные значения, которые ищет IJoin, потому что, когда я пытаюсь использовать это, я получаю "Не могу сделать выводОтношения между автомобилем и оборудованием "

Автомобиль выглядит следующим образом.

    [AutoIncrement]
    public int Id { get; set; }

    public int FuelTypeId { get; set; }

    [Required]
    public List<Equipment> Equipment { get; set; }

    [Required]
    public List<int> EquipmentIds { get; set; }

    [Required]
    public byte[] ProfileImage { get; set; }

Оборудование выглядит следующим образом.

    [AutoIncrement]
    public int Id { get; set; }

    public EquipmentType EquipmentType { get; set; }

    [Required]
    public int EquipmentTypeId { get; set; }

    [Required]
    public string Name { get; set; }

Я понимаю, что для этого потребуется много магии, знаято, что EquipmentIds - это список идентификаторов, которые он должен проверить в таблице «Оборудование», но поскольку все остальное с ServiceStack является волшебным, я даю ему попытку.

NB. Я сократил некоторые модели, потому что они длинные и содержат много информации, которая в этом случае не нужна.

1 Ответ

1 голос
/ 09 апреля 2019

Любые объединения в AutoQuery должны соответствовать Справочным соглашениям OrmLite .

...