Я провел некоторое тестирование в своей тестовой базе данных, чтобы посмотреть, смогу ли я придумать сценарий, в котором произошла бы ошибка, если бы я НЕ вызывал GetInsertCommand()
.Оказывается, это может произойти, в моем случае это произошло, когда я обновлял несколько разных таблиц в базе данных.
По какой-то причине при обновлении моей 4-й таблицы она не могла корректно вставляться.Это беспокоило меня, поэтому я решил сделать немного больше исследований, которые привели меня сюда .Обратите особое внимание на:
После первого создания оператора Transact-SQL приложение должно явно вызвать RefreshSchema, если оно каким-либо образом изменяет оператор.В противном случае GetInsertCommand будет по-прежнему использовать информацию из предыдущего оператора, что может быть неверно.
Это говорит о том, что он МОЖЕТ работать без вызова, но лучше вызывать его.Я пытался найти причину, почему иногда это работает, а иногда нет.Но я не смог понять это полностью.