【问题标题】:Check if records with a certain value exist in database, using WCF RIA Services使用 WCF RIA 服务检查数据库中是否存在具有特定值的记录
【发布时间】:2011-05-14 01:07:16
【问题描述】:

Silverlight 应用程序使用 WCF RIA 服务连接到 SQL Server 数据库。在向表中插入一堆新记录之前,我应该检查该表是否包含在其中一个字段中具有特定值的任何记录。

我对 Silverlight 有点陌生,所以需要一些关于处理 WCF RIA 服务的正确方法的建议。

我是否应该请求过滤掉给定值的记录,加载它,然后在客户端上检查它是否包含任何此类记录?类似于域服务类@987654321 中的以下方法@:

public IQueryable<Product> GetProducts(string nameFilter)
{
   return this.ObjectContext.Products.Where(p => p.Name.StartsWith(nameFilter));
}

或者我应该(在域服务类中)编写一个自定义方法,该方法将在服务器端进行所有检查并且只返回布尔确认?

在 Silverlight WCF RIA 服务的上下文中,哪种方法更正确?

【问题讨论】:

  • 所以您想将所有值返回给客户端,以防用户输入与数据库中的某个值匹配的值?

标签: silverlight wcf wcf-ria-services


【解决方案1】:

在服务器上进行,仅通过网络发送您实际需要的数据。虽然如果您最终要使用结果,我建议您在同一次调用中返回该结果,否则您会为相同的信息进行两次调用。

这就是我们在应用程序中的做法。

我要添加的唯一警告是,如果您想对数据进行一些昂贵的过滤或扩展结果集,可能返回完整集并在客户端中工作会更有效或者如果您的数据对象很大并且您没有超过一半的时间使用它,那么重复调用实际上可能更有效。

实际上与“标准”网络/数据库编程相同的规则适用 - 您不想对服务器进行两次(或多次)调用,但同样您不想发送数据不会用。您必须分析您的应用程序并查看存在瓶颈的位置并逐个分析代码。

您的问题有点令人困惑,因为您引用的代码是服务器端代码。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-09-01
    • 1970-01-01
    • 2018-06-02
    • 1970-01-01
    • 2013-08-07
    • 2016-07-15
    • 2010-11-03
    • 2011-04-22
    相关资源
    最近更新 更多