Silverlight Autocomplete& WCF RIA服务:整个列表是否返回给客户?

时间:2010-09-23 18:19:49

标签: silverlight autocomplete wcf-ria-services

我有一个数据库,最终将包含数千条记录,并将使用Silverlight自动完成框控件和WCF RIA服务搜索此列表。我在我的域数据源中使用了没有任何参数的基本实现:“GetXXXQuery”:

public IQuerable<XXX> GetXXXs()
{
    return this.ObjectContext.XXXs;
}

我将使用“Name”作为ValueMemberPath在自动填充中使用此查询的返回值。

我的对象列表现在非常小,所以列出我拥有的所有记录的速度非常快。我的问题是:一旦我的记录列表变得更大,或者如果有更多人访问服务器,这种实现是否有效?它是在我的数据库中返回整个记录列表,还是IQueryable对象以某种方式允许基于我的自动完成框中的字符串进行查询,从我的数据库中有效地返回一小部分记录?

谢谢,丹尼斯

1 个答案:

答案 0 :(得分:0)

如果向RIA Linq查询添加搜索词,即在RIA Linq查询中添加where子句,则将在服务器端解析。只传回匹配的结果,而不是整个表*。

IQuerable&LT;&GT;查询实际上是由Ria服务在客户端上序列化的,并传递给服务器执行。辉煌的系统。特别适用于分页/搜索数百万条记录。

*(注意:如果您获得了给定术语的大量匹配项,您可能需要决定是否返回有限数量的记录。除非至少有3个字符,否则您也不想开始搜索已输入)。