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