Мы работаем над настольным компьютером. NET Базовое приложение, которое синхронизирует все данные с экземпляром Azure SQL сервера. По соображениям безопасности строка подключения указывает на пользователя, имеющего только разрешения SELECT, INSERT и EXE C в настраиваемой схеме. Я хотел бы использовать некоторую структуру для синхронизации c a DataGridView
Control с таблицей Client
, чтобы, когда другие пользователи обновляли таблицу Client
во время работы приложения, DataGridView автоматически обновлялся с новая информация.
Прямо сейчас я думаю, что мы могли бы создать триггер на SQL сервере, который вставляется в таблицу Client_Update
с меткой времени обновления, Client_ID
PK и XML / JSON строка объекта. Затем SQL Сервер отправляет уведомление через Service Broker. Это предупреждает клиентское приложение через SqlDependency
, которое выполняет хранимую процедуру, которая извлекает все Client_ID
и выполняет для них запрос SELECT, чтобы получить объекты Client
. Эти объекты затем могут быть обновлены в DataGridView.
В качестве альтернативы мы могли бы использовать сам Service Broker для отправки сообщения клиентскому приложению, содержащему обновленный объект Client
, но я не настолько знаком с Service Broker. Есть ли лучший подход?