MergeOption 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.
Określa sposób, w jaki obiekty ładowane do kontekstu obiektu są scalane z obiektami już w kontekście obiektu.
public enum class MergeOption
public enum MergeOption
type MergeOption =
Public Enum MergeOption
- Dziedziczenie
Pola
| AppendOnly | 0 | Obiekty, które nie istnieją w kontekście obiektu, są dołączone do kontekstu. Jeśli obiekt jest już w kontekście, bieżące i oryginalne wartości właściwości obiektu we wpisie nie są zastępowane wartościami źródła danych. Stan wpisu obiektu i stanu właściwości obiektu w wpisie nie zmieniają się. AppendOnly jest domyślną opcją scalania. |
| NoTracking | 3 | Obiekty są utrzymywane w Detached stanie i nie są śledzone w . ObjectStateManager Jednak Entity Framework generowane przez program i jednostki POCO z obiektami proxy utrzymują odwołanie do kontekstu obiektu, aby ułatwić ładowanie powiązanych obiektów. |
| OverwriteChanges | 1 | Obiekty, które nie istnieją w kontekście obiektu, są dołączone do kontekstu. Jeśli obiekt znajduje się już w kontekście, bieżące i oryginalne wartości właściwości obiektu we wpisie są zastępowane wartościami źródła danych. Stan wpisu obiektu jest ustawiony na Unchanged , żadne właściwości nie są oznaczone jako zmodyfikowane. |
| PreserveChanges | 2 | Obiekty, które nie istnieją w kontekście obiektu, są dołączone do kontekstu. |
Uwagi
Jednostka Entity Framework tylko jedno wystąpienie obiektu z określonym kluczem jednostki w pamięci podręcznej. Obiekty EntityKey są niezmienne obiekty, które reprezentują tożsamość obiektu. Klucze jednostek są używane do rozpoznawania tożsamości w kontekście obiektu. Aby uzyskać więcej informacji, zobacz Praca z kluczami jednostek. Jeśli jednostka o tej samej tożsamości jest już śledzona, dane pochodzące ze źródła danych i dane już w menedżerze stanu są scalane zgodnie z MergeOption zapytaniem.
Dodatkowe informacje na temat MergeOption.PreserveChanges
Jeśli stan jednostki to , bieżące i oryginalne wartości we wpisie są EntityState.Unchanged zastępowane wartościami źródła danych. Stan jednostki pozostaje bez EntityState.Unchanged żadnych właściwości oznaczonych jako zmodyfikowane.
Jeśli stan jednostki to , bieżące wartości zmodyfikowanych właściwości nie są EntityState.Modified zastępowane wartościami źródła danych. Oryginalne wartości niezmodyfikowanych właściwości są zastępowane wartościami ze źródła danych.
W .NET Framework 4 Entity Framework porównuje bieżące wartości niezmodyfikowanych właściwości z wartościami zwróconymi ze źródła danych. Jeśli wartości nie są takie same, właściwość jest oznaczona jako zmodyfikowana.
W .NET Framework 3.5 SP1 Entity Framework nie oznacza właściwości jako zmodyfikowanej, nawet jeśli wartość w źródle danych jest inna.
Tylko zmodyfikowane właściwości są utrwalane w źródle danych podczas wywołania funkcji ObjectContext.SaveChanges .
Aby zachować zachowanie .NET Framework 3.5 SP1, ustaw ObjectContextOptions.UseLegacyPreserveChangesBehavior wartość true . Opcja PreserveChanges może służyć do rozwiązywania wyjątków optymistycznej współbieżności przy zachowaniu zmian w kontekście lokalnym. Aby uzyskać więcej informacji, zobacz Zapisywanie zmian i zarządzanie współbieżnością.