Как использовать RIA Services QueryBuilder <T> - PullRequest
0 голосов
/ 15 сентября 2011

Согласно списку параметров QueryBuilder, объект EntityQuery из T является кандидатом на формирование запроса. Однако мои попытки сделать это не увенчались успехом. Мне интересно, знает ли кто-нибудь, как использовать метод ApplyTo в EntityQuery of T для его фильтрации на клиенте?

Это то, что я имею до сих пор:

Следующий фрагмент успешно возвращает все пользовательские объекты, хранящиеся в конкретной таблице базы данных.

var ctx = new CustomDomainContext();
var query = ctx.GetAllCustomEntitiesQuery();

var lo = ctx.Load<CustomEntity>(query);
lo.Completed += (s, e) =>
{
    var result = lo.Entities.ToList();
};

Следующий фрагмент пытается сформировать запрос, использованный выше, для разграничения результатов с помощью RIA Services QueryBuilder. К сожалению, все данные все еще возвращаются.

var ctx = new CustomDomainContext();
var query = ctx.GetAllCustomEntitiesQuery();

var builder = new QueryBuilder<CustomEntity>();
builder.Where(c => c.Id == 1);
builder.ApplyTo(query);

var lo = ctx.Load<CustomEntity>(query);
lo.Completed += (s, e) =>
{
    var result = lo.Entities.ToList(); --> Still returns all entities!
};

Нет сомнений, что я неправильно использую QueryBuilder. Кто-нибудь имел опыт применения QueryBuilder для EntityQuery из T?

Ответы [ 2 ]

0 голосов
/ 19 сентября 2011
lo.Completed += (s, e) => 
{     
    foreach(CustomEntity item in lo.Entities)
    {
      list.add(item);
    }
 }; 
0 голосов
/ 16 сентября 2011

Я осознал свою ошибку.Метод ApplyTo в QueryBuilder не изменяет первоначальный EntityQuery, а вместо этого возвращает новый.Следовательно, все, что мне нужно было сделать, это загрузить возвращенный EntityQuery QueryBuilder в метод Load DomainContext.

...