Seguem minhas propostas:
-
Se você conseguir adicionar uma tabela duplicada ao banco de dados, aqui está uma solução. Você tem sua tabela1 e tabela2 (Cópia de tabela1 ). Ao inserir novos registros em table1 , você pode compará-los com registros existentes em sua tabela2 e assim encontrar novos registros. Depois de comparar, você deve adicionar todos os novos registros à tabela2 . Isso é algum tipo de sincronização. Isso pode ser feito via proc armazenado ou programaticamente.
-
Você não precisa de outras tabelas. Você pode armazenar todos os seus dados no cache do seu aplicativo e verificar com algum período de tempo (por exemplo, 5 segundos) se existem novos eventos que não existem no seu cache. Se eles não existirem - notifique-os em seu log ou em outro lugar e adicione-os ao cache. Mas se houver muitos registros, o tempo de processamento será muito maior + consumo de memória.
-
Se você puder alterar o db, poderá adicionar algo como a coluna 'isNew' à sua tabela. Quando um novo dado vem do site, a coluna será 'true', seu programa pode rastrear isso e, após o processamento, definir esse sinalizador como false para cada registro. (Se o site não pode definir este sinalizador, você pode usar SQL TRIGGER AFTER INSERT para definir o valor do sinalizador como verdadeiro. O site nem pode saber sobre esse recurso se for um site de terceiros ou se você não quiser alterar nada lá)
-
Aqui está o artigo sobre o rastreamento de alterações do EF:http://blogs.msdn.com/b/adonet/archive/2009/06/10/poco-in-the-entity-framework-part-3-change-tracking-with- poco.aspx
Mas o problema é que você deve verificar toda a tabela em busca de alterações via EF que afetarão o desempenho do seu aplicativo.
Aqui estão informações úteis sobre o controle de alterações do SQL Server e os conceitos de implementação:http://www.mssqltips.com/sqlservertip/1819/using-change-tracking-in-sql-server-2008/http://msdn.microsoft. com/en-us/library/bb933994.aspx