servicestack ServiceStack中带有ResponseDTO的自动查询,servicestack,servicestack" /> servicestack ServiceStack中带有ResponseDTO的自动查询,servicestack,servicestack" />

servicestack ServiceStack中带有ResponseDTO的自动查询

servicestack ServiceStack中带有ResponseDTO的自动查询,servicestack,servicestack,我使用以下代码在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> Manu

我使用以下代码在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; }
}
我意识到,如果知道EquipmentID是一个ID列表,它应该在设备表中检查,那么这需要很多魔法,但是由于ServiceStack的所有其他功能都是魔法,所以我尝试一下


注意:我缩短了一些模型,因为它们很长,并且包含了很多本例中不需要的信息

需要遵循的任何连接。

我将EquipmentId重命名为EquipmentId,并且该部分工作正常。但是,有几个表中的信息,我想它们应该单独连接,就像这个IJoin,IJoin,IJoin,而不是像我在这个例子中所做的那样?@AtleKristiansen如果它们需要连接到
Car
它们需要单独连接,用于连接到它前面的表。理想情况下,它希望将第一个连接的结果与第二个连接的结果连接起来,依此类推。我试着用IJoin和so one来做这件事,但没有成功。在写了这篇文章之后,我意识到我不需要加入任何表,因为我只需要用于筛选目的的ID。@AtleKristiansen再次,请用完整的源代码+异常详细信息打开一个新问题。是不是
设备
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; }
}
    [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; }