gpt4 book ai didi

linq - ASP.NET Web API GET 方法 : Passing multiple values for single parameter

转载 作者:行者123 更新时间:2023-12-04 15:23:37 24 4
gpt4 key购买 nike

我对 ASP.NET Web API 相当陌生。

我正在尝试构建一个 API 方法,该方法可以处理来自搜索客户端的单个参数的多个值。

标准需要是 OR 搜索,例如。颜色搜索红色或蓝色或绿色。

我将颜色作为整数传递给我的方法。请在下面找到我的 Controller 方法,它无法编译并出现以下错误

错误:

Error 1 'int' does not contain a definition for 'Contains' and the best extension method overload 'System.Linq.ParallelEnumerable.Contains(System.Linq.ParallelQuery, TSource)' has some invalid arguments

Error 2 Instance argument: cannot convert from 'int' to 'System.Linq.ParallelQuery'



代码:
public IQueryable<Items> GetItemByColour(string Colour)
{
int[] intArr = Array.ConvertAll(Colour.Split(','), s => int.Parse(s));

var query = from a in db.Items
where a.ItemsColour.Contains(intArr)
select a;

return query;
}

最佳答案

你似乎有两个不同的问题。第一个是您不需要将颜色列表作为字符串发送并手动将其转换为整数数组,您可以这样做:

public IQueryable<Items> GetItemByColour([FromUri] int[] Colour)

并且您在 LINQ 查询中遇到错误,因为 a.ItemColour是整数,不是整数列表,因此不能使用 Contains扩展方法就可以了。你必须这样做(假设 Colour 现在是一个整数数组):
var query = from a in db.Items
where Colour.Contains(a.ItemsColour)
select a;

return query;

关于linq - ASP.NET Web API GET 方法 : Passing multiple values for single parameter,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17909423/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com