簡體   English   中英

服務堆棧:不支持指定的方法

[英]Servicestack : Specified method not supported

在查詢中添加Any后,出現方法未指定錯誤。 請找到下面的片段

楷模

public class BodyTatoo
  {
    public BodyTatoo()
    {

    }

    public Guid Id { get; set; }

    [Reference]
    public List<BodyTattooColor> TattooColors {get;set;} = new List<BodyTattooColor>();

}

  public class BodyTattooColor
  {
    public Guid Id { get; set; }

    [References(typeof(Color))]
    public int ColorId{ get; set; }
    [Reference]
    public Color Color { get; set; }

    [References(typeof(BodyTatoo)]
    public Guid BodyTattooId { get; set; }
    [Reference]
    public BodyTatoo BodyTatoo { get; set; }

  }

  public class Color
  { 
    public int Id { get; set; }
    public string Name { get; set; }
  }
-------------------------------------------------

請求 DTO

     public class RequestDto : IReturn<Result>
      { 
        // It can be comma separated value eg: "Black, Green, Red etc.."
        public string Colors { get; set; }
        public Guid Id { get; set; }
      }

   

 public List<Result> Get(RequestDto request)
    {
    
    var query = Db.From<>()
                  .leftJoin<BodyTatoo,BodyTattooColor>()
                  .leftJoin<BodyTattooColor,Color>();
    
    var colorArray = request.colors.split(",");
    
   query = query.Or<BodyTatoo>(x => x.BodyTattooColor
                .Any(v => colorArray.Any(c => v.Color.Name.Contains(c))));

    }

讓我知道是否有任何方法可以解決這個問題。

query = query.Or(x => x.BodyTattooColor .Any(v => colorArray.Any(c => v.Color.Name.Contains(c)))); 這條線給出了問題。

好的,所以我可以使用下面的代碼來解決這個問題。

query = query.Or<BodyTattooColor>(x => colorArray.Any(c => x.Color.Name.Contains(c))));

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM