Я пытаюсь использовать Dapper поддерживать мой доступ к данным для моего серверного приложения.
В моем серверном приложении есть другое приложение, которое записывает записи в мою базу данных со скоростью 400 в минуту.
Мое приложение вытаскивает их партиями, обрабатывает их, а затем удаляет из базы данных.
Поскольку данные продолжают поступать в базу данных во время обработки, у меня нет хорошего способа сказать delete from myTable where allProcessed = true
.
Однако, я знаю значение PK строк для удаления. Поэтому я хочу сделать delete from myTable where Id in @listToDelete
Проблема в том, что если мой сервер опустится даже на 6 минут, у меня будет более 2100 строк для удаления.
Так как Dapper берет мой @listToDelete и превращает каждый в параметр, мой вызов на удаление терпит неудачу. (Из-за того, что моя очистка данных еще больше позади.)
Каков наилучший способ справиться с этим в Dapper?
ПРИМЕЧАНИЯ: Я просмотрел Tabled Valued Parameters, но из того, что я вижу, они не очень эффективны . Эта часть моей архитектуры - это горло бутылки моей системы, и мне нужно быть очень очень быстро.