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 .

Применяется к