DeleteBehavior Перечисление
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Указывает, как операция удаления применяется к зависимым сущностям в связи при удалении субъекта или прерывании связи.
Поведение в базе данных зависит от схемы базы данных, создаваемой соответствующим образом. Используя миграции Entity Framework или EnsureCreated() создайте соответствующую схему.
Обратите внимание, что поведение в памяти для сущностей, отслеживаемых DbContext в данный момент, может отличаться от поведения, которое происходит в базе данных.
public enum DeleteBehavior
type DeleteBehavior =
Public Enum DeleteBehavior
- Наследование
-
DeleteBehavior
Поля
| Cascade | 3 | Для сущностей, отслеживаемых зависимыми DbContextсущностями, будут удалены при удалении связанного субъекта. Если база данных была создана на основе модели с помощью миграций Entity Framework или EnsureCreated() метода, поведение в базе данных аналогично описано выше для отслеживаемых сущностей. Имейте в виду, что некоторые базы данных не могут легко поддерживать такое поведение, особенно если имеются циклы в отношениях, в этом случае может быть лучше использовать ClientCascade , что позволит EF выполнять каскадные удаления для загруженных сущностей, даже если база данных не поддерживает это. Это значение по умолчанию для необходимых связей. То есть для связей, имеющих внешние ключи, не допускающие значения NULL. |
| ClientCascade | 4 | Для сущностей, отслеживаемых зависимыми DbContextсущностями, будут удалены при удалении связанного субъекта. Если база данных была создана на основе модели с помощью миграций Entity Framework или EnsureCreated() метода, поведение в базе данных заключается в том, чтобы создать ошибку при нарушении ограничения внешнего ключа. |
| ClientNoAction | 6 | Примечание. Использовать это значение необычно. Рекомендуется использовать ClientSetNull вместо этого, чтобы соответствовать поведению EF6 с каскадными удалениями, отключенными. Для сущностей, отслеживаемых с помощью DbContextсущностей, значения свойств внешнего ключа в зависимых сущностях не изменяются при удалении связанной основной сущности. Это может привести к несогласованной диаграмме сущностей, где значения свойств внешнего ключа не соответствуют связям в графе. Если база данных была создана на основе модели с помощью миграций Entity Framework или EnsureCreated() метода, поведение в базе данных заключается в том, чтобы создать ошибку при нарушении ограничения внешнего ключа. |
| ClientSetNull | 0 | Для сущностей, отслеживаемых данными DbContext, значения свойств внешнего ключа в зависимых сущностях имеют значение NULL при удалении связанного субъекта. Это помогает сохранить граф сущностей в согласованном состоянии во время их отслеживания, чтобы затем полностью согласованный граф можно было записать в базу данных. Если свойству не удается задать значение NULL, так как он не является типом, допускаемым значением NULL, то при SaveChanges() вызове вызывается исключение. Если база данных была создана на основе модели с помощью миграций Entity Framework или EnsureCreated() метода, поведение в базе данных заключается в том, чтобы создать ошибку при нарушении ограничения внешнего ключа. Это значение по умолчанию для необязательных связей. То есть для связей, имеющих внешние ключи, допускающие значение NULL. |
| NoAction | 5 | Для сущностей, отслеживаемых данными DbContext, значения свойств внешнего ключа в зависимых сущностях имеют значение NULL при удалении связанного субъекта. Это помогает сохранить граф сущностей в согласованном состоянии во время их отслеживания, чтобы затем полностью согласованный граф можно было записать в базу данных. Если свойству не удается задать значение NULL, так как он не является типом, допускаемым значением NULL, то при SaveChanges() вызове вызывается исключение. Если база данных была создана на основе модели с помощью миграций Entity Framework или EnsureCreated() метода, поведение в базе данных заключается в том, чтобы создать ошибку при нарушении ограничения внешнего ключа. |
| Restrict | 1 | Для сущностей, отслеживаемых данными DbContext, значения свойств внешнего ключа в зависимых сущностях имеют значение NULL при удалении связанного субъекта. Это помогает сохранить граф сущностей в согласованном состоянии во время их отслеживания, чтобы затем полностью согласованный граф можно было записать в базу данных. Если свойству не удается задать значение NULL, так как он не является типом, допускаемым значением NULL, то при SaveChanges() вызове вызывается исключение. Если база данных была создана на основе модели с помощью миграций Entity Framework или EnsureCreated() метода, поведение в базе данных заключается в том, чтобы создать ошибку при нарушении ограничения внешнего ключа. |
| SetNull | 2 | Для сущностей, отслеживаемых данными DbContext, значения свойств внешнего ключа в зависимых сущностях имеют значение NULL при удалении связанного субъекта. Это помогает сохранить граф сущностей в согласованном состоянии во время их отслеживания, чтобы затем полностью согласованный граф можно было записать в базу данных. Если свойству не удается задать значение NULL, так как он не является типом, допускаемым значением NULL, то при SaveChanges() вызове вызывается исключение. Если база данных была создана на основе модели с помощью миграций Entity Framework или EnsureCreated() метода, поведение в базе данных аналогично описано выше для отслеживаемых сущностей. Имейте в виду, что некоторые базы данных не могут легко поддерживать такое поведение, особенно если имеются циклы в отношениях, в этом случае лучше использовать ClientSetNull , что позволит EF каскадировать значения NULL в загруженных сущностях, даже если база данных не поддерживает это. |
Комментарии
Дополнительные сведения см. в статье "Каскадный удаление и удаление потерянных файлов в EF Core ".
Применяется к
Обратная связь
Отправить и просмотреть отзыв по