Насколько я понимаю, OracleDependency можно привязать к мониторингу запроса (а не только к таблице). Я делаю 2 командных объекта и 2 объекта зависимостей, но у обоих запросов разные предложения where, поэтому они должны смотреть на 2 разных подмножества этой таблицы.
Я назначаю оба этих объекта зависимости одному и тому же обратному вызову. Я ожидаю, что когда я изменю что-то в таблице, один из этих объектов зависимости будет наблюдать, что событие OnChange сработает для этого. Затем я смог бы сделать следующее в событии OnChange, чтобы получить запрос, вызвавший изменение:
OracleDependency OraDep = (OracleDependency)sender;
string sql = (string)OraDep.RegisteredResources[0];
Итак, я настроил 2 запроса к одной и той же таблице с другим значением условия where. Затем я захожу в БД и меняю один из них, но, к моему удивлению, OnChange даже запускается дважды, и приведенный выше код для получения запроса показывает оба запроса.
Нет ли способа получить зависимость для конкретного запроса, а не для всей таблицы? Я думал, что где-то читал, что вы настроили его для конкретного запроса, где предложение и все.