根据QueryBuilder的参数列表,T对象的EntityQuery是查询整形的候选对象。但是,我这样做的尝试都没有成功。我想知道是否有人知道如何在EntityQuery of T上使用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的经验?
答案 0 :(得分:0)
我意识到自己的错误。 QueryBuilder的ApplyTo方法不会改变原始的EntityQuery,而是返回一个新的。因此,我需要做的就是将QueryBuilder返回的EntityQuery加载到DomainContext的Load方法中。
答案 1 :(得分:0)
lo.Completed += (s, e) =>
{
foreach(CustomEntity item in lo.Entities)
{
list.add(item);
}
};