DeleteBehavior Wyliczenie
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
Wskazuje sposób stosowania operacji usuwania do jednostek zależnych w relacji po usunięciu podmiotu zabezpieczeń lub zerwaniu relacji.
Zachowania w bazie danych są zależne od tworzonego odpowiednio schematu bazy danych. Użycie migracji platformy Entity Framework lub EnsureCreated() utworzenie odpowiedniego schematu.
Należy pamiętać, że zachowanie w pamięci dla jednostek, które są obecnie śledzone przez DbContext element, może różnić się od zachowania wykonywanego w bazie danych.
public enum DeleteBehavior
type DeleteBehavior =
Public Enum DeleteBehavior
- Dziedziczenie
-
DeleteBehavior
Pola
| Cascade | 3 | W przypadku jednostek śledzonych przez DbContextjednostki zależne zostaną usunięte po usunięciu powiązanego podmiotu zabezpieczeń. Jeśli baza danych została utworzona na podstawie modelu przy użyciu migracji platformy Entity Framework lub EnsureCreated() metody, zachowanie w bazie danych jest takie samo, jak opisano powyżej w przypadku śledzonych jednostek. Należy pamiętać, że niektóre bazy danych nie mogą łatwo obsługiwać tego zachowania, zwłaszcza jeśli istnieją cykle w relacjach, w takim przypadku lepszym rozwiązaniem może być użycie ClientCascade programu EF, które umożliwi programowi EF wykonywanie kaskadowych operacji usuwania dla załadowanych jednostek, nawet jeśli baza danych nie obsługuje tego. Jest to wartość domyślna dla wymaganych relacji. Oznacza to, że w przypadku relacji, które mają niepuste klucze obce. |
| ClientCascade | 4 | W przypadku jednostek śledzonych przez DbContextjednostki zależne zostaną usunięte po usunięciu powiązanego podmiotu zabezpieczeń. Jeśli baza danych została utworzona na podstawie modelu przy użyciu funkcji Entity Framework Migrations lub EnsureCreated() metody, zachowanie w bazie danych polega na wygenerowaniu błędu w przypadku naruszenia ograniczenia klucza obcego. |
| ClientNoAction | 6 | Uwaga: ta wartość jest nietypowa. Rozważ użycie ClientSetNull zamiast tego, aby dopasować zachowanie ef6 z wyłączoną kaskadą usuwania. W przypadku jednostek śledzonych przez DbContextobiekt wartości właściwości klucza obcego w jednostkach zależnych nie są zmieniane po usunięciu powiązanej jednostki głównej. Może to spowodować niespójny wykres jednostek, w których wartości właściwości klucza obcego nie są zgodne z relacjami na wykresie. Jeśli baza danych została utworzona na podstawie modelu przy użyciu funkcji Entity Framework Migrations lub EnsureCreated() metody, zachowanie w bazie danych polega na wygenerowaniu błędu w przypadku naruszenia ograniczenia klucza obcego. |
| ClientSetNull | 0 | W przypadku jednostek śledzonych przez DbContextelement , wartości właściwości klucza obcego w jednostkach zależnych są ustawione na wartość null po usunięciu powiązanego podmiotu zabezpieczeń. Pomaga to zachować wykres jednostek w spójnym stanie podczas ich śledzenia, tak aby można było zapisywać w bazie danych w pełni spójny graf. Jeśli nie można ustawić właściwości na wartość null, ponieważ nie jest to typ dopuszczalny do wartości null, podczas wywoływanego wywołania zostanie zgłoszony SaveChanges() wyjątek. Jeśli baza danych została utworzona na podstawie modelu przy użyciu funkcji Entity Framework Migrations lub EnsureCreated() metody, zachowanie w bazie danych polega na wygenerowaniu błędu w przypadku naruszenia ograniczenia klucza obcego. Jest to ustawienie domyślne dla relacji opcjonalnych. Oznacza to, że w przypadku relacji, które mają klucze obce dopuszczające wartość null. |
| NoAction | 5 | W przypadku jednostek śledzonych przez DbContextelement , wartości właściwości klucza obcego w jednostkach zależnych są ustawione na wartość null po usunięciu powiązanego podmiotu zabezpieczeń. Pomaga to zachować wykres jednostek w spójnym stanie podczas ich śledzenia, tak aby można było zapisywać w bazie danych w pełni spójny graf. Jeśli nie można ustawić właściwości na wartość null, ponieważ nie jest to typ dopuszczalny do wartości null, podczas wywoływanego wywołania zostanie zgłoszony SaveChanges() wyjątek. Jeśli baza danych została utworzona na podstawie modelu przy użyciu funkcji Entity Framework Migrations lub EnsureCreated() metody, zachowanie w bazie danych polega na wygenerowaniu błędu w przypadku naruszenia ograniczenia klucza obcego. |
| Restrict | 1 | W przypadku jednostek śledzonych przez DbContextelement , wartości właściwości klucza obcego w jednostkach zależnych są ustawione na wartość null po usunięciu powiązanego podmiotu zabezpieczeń. Pomaga to zachować wykres jednostek w spójnym stanie podczas ich śledzenia, tak aby można było zapisywać w bazie danych w pełni spójny graf. Jeśli nie można ustawić właściwości na wartość null, ponieważ nie jest to typ dopuszczalny do wartości null, podczas wywoływanego wywołania zostanie zgłoszony SaveChanges() wyjątek. Jeśli baza danych została utworzona na podstawie modelu przy użyciu funkcji Entity Framework Migrations lub EnsureCreated() metody, zachowanie w bazie danych polega na wygenerowaniu błędu w przypadku naruszenia ograniczenia klucza obcego. |
| SetNull | 2 | W przypadku jednostek śledzonych przez DbContextelement , wartości właściwości klucza obcego w jednostkach zależnych są ustawione na wartość null po usunięciu powiązanego podmiotu zabezpieczeń. Pomaga to zachować wykres jednostek w spójnym stanie podczas ich śledzenia, tak aby można było zapisywać w bazie danych w pełni spójny graf. Jeśli nie można ustawić właściwości na wartość null, ponieważ nie jest to typ dopuszczalny do wartości null, podczas wywoływanego wywołania zostanie zgłoszony SaveChanges() wyjątek. Jeśli baza danych została utworzona na podstawie modelu przy użyciu migracji platformy Entity Framework lub EnsureCreated() metody, zachowanie w bazie danych jest takie samo, jak opisano powyżej w przypadku śledzonych jednostek. Należy pamiętać, że niektóre bazy danych nie mogą łatwo obsługiwać tego zachowania, zwłaszcza jeśli istnieją cykle w relacjach, w takim przypadku lepszym rozwiązaniem może być użycie ClientSetNull programu EF, co pozwoli programowi EF na kaskadowe wartości null dla załadowanych jednostek, nawet jeśli baza danych tego nie obsługuje. |
Uwagi
Aby uzyskać więcej informacji, zobacz Usuwanie kaskadowe i usuwanie oddzielonych w programie EF Core .
Dotyczy
Opinia
Prześlij i wyświetl opinię dla