Я пытаюсь реализовать функциональность на моей клиентской стороне. Контекст домена, где я хочу работать с каждой из записей базы данных до того, как они будут отправлены клиенту. Чтобы создать простую иллюстрацию, предположим, что я хотел изменить поле в моей таблице клиентов с именем LastAccessed и установить его с текущей DateTime. Вот что я пытался в моем домене службы Класс:Silverlight Ria Services - обновление серверной части сервера (контекст домена) при запросе записи
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.
Так что в двух словах мне нужно найти способ доступа только к записям, которые будут в конечном итоге возвращены, и в этот момент кода у меня, кажется, есть вся таблица. Я знаю, что могу передать конкретный идентификатор клиента и запросить его, а затем работать с этими результатами, но я хочу, чтобы гибкость для запроса поступала от клиента, чтобы, если они заполняют сетку, основанную на некоторых критериях поиска, таких как «State == «NY» - все записи, которые возвращаются для заполнения результатов сетки, вызывают обновление поля LastAccessed. Любая помощь будет оценена! Спасибо!