Skip to content

Retrieving data matching search criteria

Vagif Abilov edited this page Nov 20, 2013 · 9 revisions

Find all products with product category 1

Untyped syntax

var products = _client
    .For("Products")
    .Filter("CategoryID+eq+1")
    .FindEntries();
Assert.NotEmpty(products);

Typed syntax

var products = _client
    .For<Products>()
    .Filter(x => x.CategoryID == 1)
    .FindEntries();
Assert.NotEmpty(products);

Dynamic syntax

var x = ODataDynamic.Expression;
var products = _client
    .For(x.Products))
    .Filter(x.CategoryID == 1)
    .FindEntries();
Assert.NotEmpty(products);

Request URI: GET Products?$filter=CategoryID+eq+1


Find all products with the length of name equal to 4

Untyped syntax

var products = _client
    .For("Products")
    .Filter("length(ProductName)+eq+4")
    .FindEntries();
Assert.NotEmpty(products);

Typed syntax

var products = _client
    .For<Products>()
    .Filter(x => x.ProductName.Length() == 4)
    .FindEntries();
Assert.NotEmpty(products);

Dynamic syntax

var x = ODataFilter.Expression;
var products = _client
    .For(x.Products)
    .Filter(x.ProductName.Length() == 4)
    .FindEntries();
Assert.NotEmpty(products);

Request URI: GET Products?$filter=length(ProductName)+eq+4


Find the count of all products with the given name

Untyped syntax

var x = ODataFilter.Expression;
var count = _client
    .For("Products")
    .Filter("ProductName+eq+%27Chai%27")
    .Count()
    .FindScalar();
Assert.Equal(1, count);

Typed syntax

var count = _client
    .For<Products>()
    .Filter(x => x.ProductName == "Chai")
    .Count()
    .FindScalar();
Assert.Equal(1, count);

Dynamic syntax

var x = ODataFilter.Expression;
var count = _client
    .For(x.Products)
    .Filter(x.ProductName == "Chai")
    .Count()
    .FindScalar();
Assert.Equal(1, count);

Request URI: GET Products/$count?$filter=ProductName+eq+%27Chai%27


Find all products with the given name and return its count together with results

Untyped syntax

Promise<int> count;
var products = _client
    .For("Products")
    .Filter("ProductName+eq+%27Chai%27")
    .FindEntries(true, out count);
Assert.NotEmpty(products);
Assert.Equal(1, count);

Typed syntax

Promise<int> count;
var products = _client
    .For<Products>()
    .Filter(x => x.ProductName == "Chai")
    .FindEntries(true, out count);
Assert.NotEmpty(products);
Assert.Equal(1, count);

Dynamic syntax

Promise<int> count;
var x = ODataFilter.Expression;
var products = _client
    .For(x.Products)
    .Filter(x.ProductName == "Chai")
    .FindEntries(true, out count);
Assert.NotEmpty(products);
Assert.Equal(1, count);

Request URI: GET Products?$filter=ProductName+eq+%27Chai%27&$inlinecount=allpages


See also:
Retrieving data