Глядя на код для FileHelpers 2.9.9, Обработка ошибок FileHelpers , похоже, не реализована для класса DatabaseStorage
, который является базовым классом для SqlServerStorage
.Я думаю, что причина, вероятно, в том, что операторы SQL обрабатываются, как в пакетах, из соображений производительности, поэтому невозможно catch
ошибка отдельной записи.
Не было бы слишком сложно добавить отсутствующиеобработка ошибок путем переопределения InsertRecords(Object[])
, но, к сожалению, SqlServerStorage
- это sealed
, а некоторые из вспомогательных подпрограмм - internal
, поэтому вам придется скопировать несколько классов в ваш код.(Если вы сделаете это, убедитесь, что вы установили ExecuteInBatch
в значение false, чтобы каждый оператор SQL обрабатывался индивидуально - это будет влиять на производительность.)например, перечисляя RouteRecord[]
) в отдельной подпрограмме, которая вызывается перед вызовом InsertRecords()
, но это не предотвратит ошибки, возникающие по другим причинам.