У меня есть ситуация, подумайте:
Приложение работает нормально.
Когда приложение запускается, если таблица T1 пуста (0 записей), SqlBulkCopy используется для вставки 5000 записей в T1, позволяющих запускать триггеры и проверки ограничений, результатом является:
Я попытался инициализировать контекст, но не добился успеха.
Процедура будет успешной в двух случаях:
Что может вызвать исключение StackOverflow.
Хорошо, проблема решена, на всякий случай, если кто-то другой столкнется с подобной ошибкой, я поделюсь своим решением.
Я изменил шаблон T4, чтобы позволить EDM создавать объекты из моей базы данных, которые:
Внедрите INotifyPropertyChanged.
Примените проверку данных путем внедрения INotifyDataErrorInfo и использования DataAnnotations, проверив правила проверки в отдельном классе метаданных.
Это вызвало исключение StackOverFlow.
Отключение проверки свойств решило проблему.
Таким образом, проверка данных не приветствуется как SqlBulkCopy, пока выполняется WriteToServer.