Работая со структурой сущностей, мой код использует LINQ для получения коллекции объектов, которые необходимо удалить из базы данных. Эта коллекция иногда довольно велика в зависимости от обстоятельств - 30 или 40 предметов.
Я продолжаю пытаться удалить эти объекты из связанных объектов, чтобы я мог их удалить, затем вызываю context.DeleteObject () для каждого и, наконец, context.SaveChanges ().
В большинстве случаев это работает очень хорошо, особенно когда коллекция удаляемых объектов очень мала. Однако, когда он большой, этот код иногда выдает ошибку вокруг ссылочной целостности, а именно:
The DELETE statement conflicted with the REFERENCE constraint
\"FK_ServiceFeatureSchemaFragmentSchemaFragment_SchemaFragment\".
The conflict occurred in database \"MyDataBase\",
table \"dbo.ServiceFeatureSchemaFragmentSchemaFragment\".\r\n
The statement has been terminated.
Похоже, что иногда мои объекты имеют дополнительные ограничения, которые я не могу найти и удалить из пары перед удалением.
То, с чем я борюсь, это то, что, поскольку я работаю с относительно большой коллекцией, я не могу понять, какие из них вызывают это. Я ищу предложения относительно того, как я могу двигаться вперед, идентифицируя проблемные объекты каким-либо образом, например, есть ли способ, которым вы можете заранее определить, будут ли объекты в коллекции вызывать подобные ошибки перед вами? удалить их? Или другой подход?
Предложения с благодарностью приняты.