Silverlight 使用WCF RIA服务检查数据库中是否存在具有特定值的记录
Silverlight应用程序使用WCF RIA服务连接到SQL Server数据库。在向表中插入一组新记录之前,我应该检查该表是否在其中一个字段中包含任何具有特定值的记录 我对Silverlight有些陌生,所以需要一些关于处理WCF RIA服务的正确方法的建议 我是否应该请求过滤掉给定值的记录,加载它,然后在客户端上检查它是否包含任何此类记录?类似于域服务类Silverlight 使用WCF RIA服务检查数据库中是否存在具有特定值的记录,silverlight,wcf,wcf-ria-services,Silverlight,Wcf,Wcf Ria Services,Silverlight应用程序使用WCF RIA服务连接到SQL Server数据库。在向表中插入一组新记录之前,我应该检查该表是否在其中一个字段中包含任何具有特定值的记录 我对Silverlight有些陌生,所以需要一些关于处理WCF RIA服务的正确方法的建议 我是否应该请求过滤掉给定值的记录,加载它,然后在客户端上检查它是否包含任何此类记录?类似于域服务类产品服务中的以下方法: public IQueryable<Product> GetProducts(string name
产品服务中的以下方法:
public IQueryable<Product> GetProducts(string nameFilter)
{
return this.ObjectContext.Products.Where(p => p.Name.StartsWith(nameFilter));
}
public IQueryable GetProducts(字符串名称过滤器)
{
返回this.ObjectContext.Products.Where(p=>p.Name.StartsWith(nameFilter));
}
还是应该(在域服务类中)编写一个自定义方法,该方法将在服务器端执行所有检查,并仅返回布尔确认?
在Silverlight WCF RIA服务的环境中,哪种方法更正确?在服务器上执行此操作,并且只通过网络发送实际需要的数据。虽然如果你最终要使用结果,我建议在同一个调用中返回结果,否则你会为相同的信息调用两次
这就是我们在应用程序中执行此操作的方式
我要补充的唯一警告是,如果您想对数据进行一些昂贵的过滤或扩展结果集,则返回完整的数据集并在客户端中工作可能会更高效,或者如果您的数据对象很大,并且您没有使用它超过一半的时间,那么进行重复调用实际上可能会更高效
实际上,与“标准”web/数据库编程相同的规则也适用——您不希望在一个服务器上进行两次(或更多)调用,但同样地,您也不希望发送不打算使用的数据。您必须分析您的应用程序,看看哪里有瓶颈,并根据具体情况分析代码
您的问题有点让人困惑,因为您引用的代码是服务器端代码。所以您希望将所有值返回给客户端,以防用户输入与数据库中某个值匹配的值?