0

根据 QueryBuilder 的参数列表,T 对象的 EntityQuery 是查询整形的候选对象。但是,我这样做的尝试没有成功。我想知道是否有人知道如何在 T 的 EntityQuery 上使用 ApplyTo 方法以便在客户端上对其进行过滤?

这是我到目前为止所拥有的:

以下代码段成功返回存储在特定数据库表中的所有自定义实体。

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 应用于 T 的 EntityQuery 的经验?

4

2 回答 2

0
lo.Completed += (s, e) => 
{     
    foreach(CustomEntity item in lo.Entities)
    {
      list.add(item);
    }
 }; 
于 2011-09-19T12:32:12.563 回答
0

我已经意识到我的错误。QueryBuilder 的 ApplyTo 方法不会改变原来的 EntityQuery,而是返回一个新的。因此,我需要做的就是将 QueryBuilder 返回的 EntityQuery 加载到 DomainContext 的 Load 方法中。

于 2011-09-16T02:56:08.613 回答