2013-07-01 3 views
0

Я использую функции IQueryable в запросах WebApi для предоставления результатов поиска. Я основываю свой код на this article. Можно ли использовать IQueryable не только для родительского объекта, но и для коллекции дочерних объектов?Применить фильтр IQueryable к родительской и дочерней коллекции в WebApi

Например, используя пример в этой статье, можно вернуть запросы для Продукта. Если в классе Product есть набор категорий, можно ли выполнять операции IQueryable в Продукте и его коллекцию категорий? Что-то вроде продуктов? $ Filter = Category.Name eq 'Toys' and Price 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

Должно работать. Попробуйте URL, как это вместо того, чтобы хотя:

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

В основном это говорит: «Найти все продукты, по крайней мере, одной категории, которая имеет название„игрушки“и цена меньше, чем 10».

+0

Rockin, спасибо, что работает для меня. – likestoski