2010-06-25 59 views
1

我试图在我的客户端实现功能域域上下文,我想在发送到客户端之前处理每个数据库记录。要创建一个简单的插图,我们假设我想更改名为LastAccessed的客户表中的一个字段,并将其设置为当前日期时间。以下是我在我的域服务类的尝试:Silverlight Ria服务 - 当查询记录时更新记录服务器端(域上下文)

public IQueryable<Customer> GetCustomers() 
    {    
     foreach (Customer c in this.DataContext.Customers) 
     { 
      c.LastAccessed = DateTime.Now; 
     } 
     DataContext.SubmitChanges(); 

     return this.DataContext.Customers; 
    } 

这种类型的作品,因为它记录被返回给客户端之前更新上次访问日期,但它更新所有客户记录不只是一个客户端请求。在我的客户端Silverlight应用程序中,我正在应用一个查询,但是在使用运行时调试时,我可以看到它正在更新每个客户,但因为我只使用查询,客户端只有所请求的客户被返回并通过线路推送。

如果我使用SQL事件探查器观察数据库,我可以看到它实际上请求所有记录,然后它只请求查询的记录。那么我会在哪里拦截那些正在返回的记录,并只更新他们的LastAccessed时间。

所以简而言之,我需要找到一种方法来只访问最终将返回的记录,并且此时在代码中我似乎有整个表。我知道我可以传入特定的客户ID并查询该结果,然后处理这些结果,但我希望查询的灵活性来自客户端,这样如果他们根据某些搜索条件填充网格,例如“State == 'NY'“返回的所有记录填充网格结果会导致LastAccessed字段更新。 任何帮助,将不胜感激!谢谢!

回答

0

我终于得到了一个答案了在Silverlight的论坛,你可以找到我来到这里的响应:

Silverlight Forum