如何解决Servicestack:不支持指定的方法
在查询中添加任何后,出现方法未指定的错误。 请找到以下代码段
模型
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))));
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。