我正在尝试在客户端域上下文中实现功能,我希望在将每个数据库记录发送到客户端之前使用它们。为了创建一个简单的插图,我假设我想更改名为LastAccessed的客户表上的字段,并使用当前的DateTime进行设置。以下是我在域名服务类中尝试的内容:
public IQueryable<Customer> GetCustomers()
{
foreach (Customer c in this.DataContext.Customers)
{
c.LastAccessed = DateTime.Now;
}
DataContext.SubmitChanges();
return this.DataContext.Customers;
}
这种方法有效,因为它在记录返回到客户端之前更新了LastAccessed日期,但它更新了所有客户记录,而不仅仅是客户端请求的记录。在我的客户端silverlight应用程序中我正在应用查询但是在使用运行时调试时我可以看到它正在更新每个客户但是因为我只使用查询客户端只返回所请求的客户并通过网络推送。
如果我使用SQL事件探查器观察我的数据库,我可以看到它实际上是在请求所有记录,然后它只请求查询的记录。那么我将在哪里拦截返回的记录并仅更新其LastAccessed次。
因此,简而言之,我需要找到一种方法来访问最终将返回的记录,并且在代码中此时我似乎拥有整个表。我知道我可以传递一个特定的客户ID并查询然后使用这些结果,但我希望查询的灵活性来自客户端,以便他们根据一些搜索条件填充网格,如“State == 'NY'“返回以填充网格结果的所有记录都会导致LastAccessed字段更新。 任何帮助,将不胜感激!谢谢!