Следует ли мне использовать таблицу очереди для синхронизации сервера c SQL с приложением NET Core? - PullRequest
0 голосов
/ 18 июня 2020

Мы работаем над настольным компьютером. 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. Есть ли лучший подход?

...