要从 TomTom 停止的地方继续,Red 询问,在返回结果之前在服务器上进行数据过滤/处理(伪代码)
public IQueriable<UserDTO> GetUserAccountDetails(string UserID)
{
DataSet oneBazillionRows = SQLServer.GetAllUserRows();
// LINQ to the rescue
return from user in oneBillionRows
where user.ID = UserID;
}
和你的消费者:
public void GetUserInfo()
{
ServiceContext context = new ServiceContext();
context.Load<UserDTO>(ServiceContext.GetUserAccountDetailsQuery(), load =>
{
// do some work here
//like signalling the call is complete
// or storing the data in your View Model
}, null);
}
然后,您的消费者将只收到一个数据行。基本形式是这样的:
public IQueriable<ReturnType> WebService(Parameter parameter, ...)
{
// Do all your work here, return minimal results
}
考虑一下:服务器总是比您的客户端机器强大得多。让它完成过滤/排序/预处理结果的所有工作,并让它交出最少的数据。您会发现您的 RIA 实现变得更加灵活。