У меня есть SqlDependency настроить с помощью следующего запроса:Запрос SqlDependency с предложением WHERE не разрешен. Как я могу изменить его, чтобы он был действительным?
string sql = "SELECT dbo.Case.CMRID, dbo.Case.SolutionID, dbo.Case.CreateDT, dbo.Case.ModifyDT "
+ "FROM dbo.Case "
+ "WHERE dbo.Case.ModifyDT > @LastExecutionDateTime";
Выполнения этого запроса заставляет OnChanged события непрерывно огня с типом Invalid и источником Заявления. Что после дальнейших исследований, которые я нашел, это то, что происходит, когда ваш запрос нарушает правила, которые являются такими же, как правила для индексированных представлений, поскольку на этом основан этот механизм уведомления.
Проверка Special Considerations Using Query Notifications (ADO.NET) Я не вижу никаких правил, которые я нарушаю с этим утверждением.
Изменение заявление
string sql = "SELECT dbo.Case.CMRID, dbo.Case.SolutionID, dbo.Case.CreateDT, dbo.Case.ModifyDT "
+ "FROM dbo.Case";
ли работает правильно. Событие OnChanged срабатывает только при необходимости и имеет правильный набор типов.
Итак, как я могу только возвращать записи с датой изменения с момента моего последнего выполнения инструкции?
ModifyDT - это DateTime на сервере. LastExecutionDateTime - это структура DateTime, которая, конечно, вызывает ToString(), вызываемую им неявно. –