Silverlight应用程序使用WCF RIA Services连接到SQL Server数据库。在将一堆新记录插入表中之前,我应检查该表是否包含其中一个字段中具有特定值的任何记录。
我对Silverlight有点新手,因此在处理WCF RIA服务方面需要一些正确方法的建议。
我是否应该过滤掉给定值的记录,加载它然后在客户端上检查它是否包含任何此类记录?类似于域服务类中的以下方法{{ 1}}:
ProductService
或者我应该在(在Domain服务类中)编写一个自定义方法,该方法将在服务器端执行所有检查并仅返回布尔确认?
在Silverlight WCF RIA服务的上下文中哪种方法更正确?
答案 0 :(得分:1)
在服务器上执行此操作,仅发送您通过网络实际需要的数据。虽然如果你最终要使用结果我建议在同一个电话中返回,否则你要拨两个电话来获取相同的信息。
这是我们在应用程序中执行此操作的方式。
我要添加的唯一警告是,如果您想对数据进行一些昂贵的过滤或扩展结果集,可能更有效地返回完整集并在客户端工作或者如果您的数据对象很大并且您没有使用它超过一半的时间,那么进行重复调用实际上可能会更有效。
实际上与“标准”Web /数据库编程相同的规则适用 - 您不希望对服务器进行两次(或更多次)调用,但同样您不希望发送数据不会用。您必须分析您的应用程序并查看存在任何瓶颈的位置,并根据具体情况分析代码。
您的问题有点令人困惑,因为您引用的代码是服务器端代码。