Existe uma maneira de ser notificado no .NET quando os dados são alterados no Sql Server? Como um evento?

10

Existe uma maneira de vincular um evento ao Sql Server (especialmente o Azure) para que, quando houver novos dados em uma tabela, por exemplo, meu processo .NET seja notificado?

Outra opção que eu pensei seria uma consulta long polling do Sql Server. Ou seja, eu executo uma consulta, mas ela não retorna nada até que haja algo para retornar ou quando um tempo limite for atingido.

Para ser mais claro sobre o meu problema, tenho segmentos diferentes em diferentes instâncias do Windows Azure aguardando notificações. Eles devem agir assim que houver uma nova notificação. Eu gostaria de não mantê-los consultando o banco de dados ou o armazenamento a cada 2 segundos.

    
por André Pena 10.09.2012 в 15:57
fonte

2 respostas

5

Não no Azure. No produto caixa você tem Notificações de consulta e seus derivados ( SqlNotificationRequest , SqlDependency e SqlCacheDependency ), veja A Notificação Misteriosa para detalhes. Você pode usá-lo como um wrapper LINQ com o LinqToCache .

Mas as notificações de consulta não são suportadas no Azure. No Azure, seu aplicativo deve notificar sempre que atualizar o banco de dados, usando Filas do Azure .

    
por Remus Rusanu 10.09.2012 / 16:28
fonte
2

Você pode usar SqlTableDependency

SqlTableDependency é um componente C # genérico usado para receber notificações quando o conteúdo de uma tabela de banco de dados especificada é alterado.

Qual é a diferença com o .NET SqlDepenency?

Basicamente, a principal diferença é que SqlTableDependency envia eventos contendo valores para o registro inserido, alterado ou excluído, bem como a operação DML (insert / delete / update) executada na tabela: SqlDepenency não informa quais dados foram mudou na tabela do banco de dados, eles só dizem que algo mudou.

    
por Christian Del Bianco 13.09.2016 / 08:21
fonte