如何通过RIA Services从客户端传递动态搜索参数?

时间:2009-11-11 17:24:09

标签: entity-framework silverlight-3.0 wcf-ria-services

我有一个运行带有EF模型的RIA服务的C#.NET Silverlight 3.0客户端。我正在尝试在客户端上设置一个高级搜索系统,以便用户可以说,我希望字段(属性)“Foo1”具有值“Bar1”等。

我想使用类似于this one的灵活,动态的方法。问题是我无法将IQueryable作为ServiceOperation参数或域服务参数传递。 I.E.这不起作用:

[ServiceOperation()]
public int GetFooCount(string category, IQueryable<Foo> search)
{
    int fooCount;
    if (search != null)
    {
        IQueryable<Foo> filteredFooSet = this.Context.FooSet.Intersect(search);
        fooCount = (from foo in filteredFooSet
                    where foo.Category == category
                    select foo).Count();
    }
    else
    {
        fooCount = (from foo in this.Context.ContactSet
                    where foo.Category == category
                    select foo).Count();
    }

    return fooCount;
}

任何人都可以建议一种方法来使用这种方法或另一种(更好的)方法吗?目标是灵活的搜索控件,可以应用于任何单个特定实体类型。

1 个答案:

答案 0 :(得分:1)

我认为你最好的选择是使用the Dynamic Linq Library。使用该库,您可以将where子句作为字符串传递,然后使用该库将其用于EF数据。