将IQueryable过滤器应用于WebApi中的父集合和子集合

时间:2013-07-01 13:23:52

标签: c# asp.net-mvc-4 asp.net-web-api iqueryable

我正在使用WebApi请求中的IQueryable功能来提供搜索结果。我已将代码设置为this article。是否可以将IQueryable用于父对象以及子对象的集合?

例如,使用本文中的示例,可以返回Product的查询。如果Product类有一个Categories类集合,那么就可以对Product及它的Categories类集合执行IQueryable操作吗?像Products这样的东西?$ filter = Category.Name eq'Toys'和价格lt 10

public class Product
{
    public int Id { get; set; }
    public string Name { get; set; }
    public float Price { get; set; }
    public IEnumerable<Category> Categories { get; set; }
}

public class Category
{
    public int Id { get; set; }
    public string Name { get; set; }
    public string Description { get; set; }
}

1 个答案:

答案 0 :(得分:1)

它应该工作。不过尝试这样的网址:

Products?$filter=Categories/any(category: category/Name eq 'Toys') and Price lt 10

这基本上是说“查找所有至少有一个名为'Toys'并且价格低于10”的产品。