RefreshMode Enum

Definitie

Definieert hoe de Refresh methode optimistische gelijktijdigheidsconflicten verwerkt.

public enum class RefreshMode
public enum RefreshMode
type RefreshMode = 
Public Enum RefreshMode
Overname
RefreshMode

Velden

Name Waarde Description
KeepCurrentValues 0

Dwingt de Refresh methode om de oorspronkelijke waarde te wisselen met de waarden die zijn opgehaald uit de database. Er wordt geen huidige waarde gewijzigd.

KeepChanges 1

Hiermee dwingt u de Refresh methode af om de huidige waarde te behouden die is gewijzigd, maar worden de andere waarden bijgewerkt met de databasewaarden.

OverwriteCurrentValues 2

Hiermee wordt de Refresh methode gedwongen om alle huidige waarden te overschrijven met de waarden uit de database.

Voorbeelden

In het volgende voorbeeld worden de huidige waarden overschreven met waarden uit de database.

Northwnd db = new Northwnd("...");
try
{
    db.SubmitChanges(ConflictMode.ContinueOnConflict);
}

catch (ChangeConflictException e)
{
    Console.WriteLine(e.Message);
    foreach (ObjectChangeConflict occ in db.ChangeConflicts)
    {
        // All database values overwrite current values.
        occ.Resolve(RefreshMode.OverwriteCurrentValues);
    }
}
Dim db As New Northwnd("...")

Try
    db.SubmitChanges(ConflictMode.ContinueOnConflict)

Catch ex As ChangeConflictException
    Console.WriteLine(ex.Message)

    For Each occ As ObjectChangeConflict In db.ChangeConflicts
        ' All database values overwrite current values.
        occ.Resolve(Data.Linq.RefreshMode.OverwriteCurrentValues)
    Next

End Try

In het volgende voorbeeld ziet u hoe u de oorspronkelijke waarde kunt wisselen met de waarden die zijn opgehaald uit de database. Er wordt geen huidige waarde gewijzigd.

try
{
    db.SubmitChanges(ConflictMode.ContinueOnConflict);
}

catch (ChangeConflictException e)
{
    Console.WriteLine(e.Message);
    foreach (ObjectChangeConflict occ in db.ChangeConflicts)
    {
        //No database values are merged into current.
        occ.Resolve(RefreshMode.KeepCurrentValues);
    }
}
Try
    db.SubmitChanges(ConflictMode.ContinueOnConflict)

Catch ex As ChangeConflictException
    Console.WriteLine(ex.Message)

    For Each occ As ObjectChangeConflict In db.ChangeConflicts
        ' No database values are merged into current.
        occ.Resolve(Data.Linq.RefreshMode.KeepCurrentValues)
    Next

End Try

In het volgende voorbeeld blijven de huidige waarden behouden die zijn gewijzigd, maar worden de andere waarden bijgewerkt met databasewaarden.

try
{
    db.SubmitChanges(ConflictMode.ContinueOnConflict);
}

catch (ChangeConflictException e)
{
    Console.WriteLine(e.Message);
    // Automerge database values for members that client
    // has not modified.
    foreach (ObjectChangeConflict occ in db.ChangeConflicts)
    {
        occ.Resolve(RefreshMode.KeepChanges);
    }
}

// Submit succeeds on second try.
db.SubmitChanges(ConflictMode.FailOnFirstConflict);
Try
    db.SubmitChanges(ConflictMode.ContinueOnConflict)

Catch ex As ChangeConflictException
    Console.WriteLine(ex.Message)

    For Each occ As ObjectChangeConflict In db.ChangeConflicts
        ' Automerge database values into current for members
        ' that client has not modified.
        occ.Resolve(Data.Linq.RefreshMode.KeepChanges)
    Next

End Try

' Submit succeeds on second try.
db.SubmitChanges(ConflictMode.FailOnFirstConflict)

Opmerkingen

Deze opsomming is van toepassing op alle Refresh overbelastingen.

Van toepassing op