Я создал функцию 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. Я сократил некоторые модели, потому что они длинные и содержат много информации, которая в этом случае не нужна.