Asp.net web api 筛选子属性OData和ASPNET WebApi

Asp.net web api 筛选子属性OData和ASPNET WebApi,asp.net-web-api,odata,Asp.net Web Api,Odata,我面临一个问题。我在谷歌上搜索了很多,但我找不到这个问题的答案 我有一个aspnetwebapi返回JSON。我还添加了nuget以允许odata查询 对于简单的情况,它工作得很好,但是现在,我需要在子集合中应用一个过滤器 样本: {"total":1,"products":[{"id":20289,"brandId":5,"categoryId":1,"price":12.0,"name":"Carolina Herrera","description":"CH","productCode":

我面临一个问题。我在谷歌上搜索了很多,但我找不到这个问题的答案

我有一个
aspnetwebapi
返回
JSON
。我还添加了nuget以允许odata查询

对于简单的情况,它工作得很好,但是现在,我需要在子集合中应用一个过滤器

样本:

{"total":1,"products":[{"id":20289,"brandId":5,"categoryId":1,"price":12.0,"name":"Carolina Herrera","description":"CH","productCode":"asd2334","picture":null,"contentPackaging":"liquid","brandName":"Carolina Herrera","brandPicture":null,"generic":true},
{"id":20290,"brandId":5,"categoryId":1,"price":25.0,"name":"Carolina Herrera 2","description":"CH 2","productCode":"asd999","picture":null,"contentPackaging":"liquid","brandName":"Carolina Herrera","brandPicture":null,"generic":true}
]}
例如,我想查询价格大于20的产品集合

我试过这样的方法:

http://domain.com/api/$filter=products/price gt 20
但那没用

有可能吗

代码:

//控制器
公共IQueryable GetProducts()
{
var products=_repository.FindBy(x=>x.Generic&&x.Status).ToList();
return products.Count==0?new List().AsQueryable():products.AsQueryable();
}
//模型
公共类ViewModelProducts
{
公共整数总计{get;set;}
公共IQueryable产品{get;set;}
}
公共类产品
{
公共int id{get;set;}
public int brandId{get;set;}
public int categoryId{get;set;}
公共十进制价格{get;set;}
公共字符串名称{get;set;}
公共字符串说明{get;set;}
公共字符串productCode{get;set;}
公共字符串图片{get;set;}
公共字符串contentPackaging{get;set;}
公共字符串brandName{get;set;}
公共字符串{get;set;}
公共布尔泛型{get;set;}
}

查询看起来不错。。。你看到了什么错误?@Roysvork没有过滤我的产品数组。它显示的是完全相同的json。Ps:我正在通过RESTClient(firefox插件)搭建帐篷。我假设“产品”一词中的输入错误只是出现在问题中,而不是出现在您的代码中?另外,请发布控制器\操作中的代码,这样我们就可以看到服务器端发生了什么。@Roysvork实际上它存在于我的模型中。我会在这里发布代码
//controller
public IQueryable<ViewModelProducts> GetProducts()
{
    var products = _repository.FindBy(x=>x.Generic && x.Status).ToList();

    return products.Count == 0 ? new List<ViewModelProducts>().AsQueryable() : products.AsQueryable();
}

//model
public class ViewModelProducts
{
    public int total { get; set; }
    public IQueryable<Products> products { get; set; }
}

public class Products
{
    public int id { get; set; }
    public int brandId { get; set; }
    public int categoryId { get; set; }
    public decimal price { get; set; }
    public string name { get; set; }
    public string description { get; set; }
    public string productCode { get; set; }
    public string picture { get; set; }
    public string contentPackaging { get; set; }
    public string brandName { get; set; }
    public string brandPicture { get; set; }
    public bool generic { get; set; }
}