ObjectChangeConflict.Resolve Yöntem

Tanım

Üye çakışmalarını çözer.

Aşırı Yüklemeler

Name Description
Resolve()

Geçerli değerleri koruyarak ve temel özgün değerleri daha yeni veritabanı değerleriyle eşleşecek şekilde sıfırlayarak üye çakışmalarını çözer.

Resolve(RefreshMode)

Belirtilen RefreshModekullanarak üye çakışmalarını çözer.

Resolve(RefreshMode, Boolean)

Geçerli değerleri saklayan ve temel özgün değerleri sıfırlayan üye çakışmalarını çözün.

Resolve()

Geçerli değerleri koruyarak ve temel özgün değerleri daha yeni veritabanı değerleriyle eşleşecek şekilde sıfırlayarak üye çakışmalarını çözer.

public:
 void Resolve();
public void Resolve();
member this.Resolve : unit -> unit
Public Sub Resolve ()

Şunlara uygulanır

Resolve(RefreshMode)

Belirtilen RefreshModekullanarak üye çakışmalarını çözer.

public:
 void Resolve(System::Data::Linq::RefreshMode refreshMode);
public void Resolve(System.Data.Linq.RefreshMode refreshMode);
member this.Resolve : System.Data.Linq.RefreshMode -> unit
Public Sub Resolve (refreshMode As RefreshMode)

Parametreler

refreshMode
RefreshMode

'den RefreshModeuygun seçenek.

Örnekler

Aşağıdaki örnek, veritabanındaki değerlerle geçerli değerlerin üzerine yazar.

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

Aşağıdaki örnekte, özgün değeri veritabanından alınan değerlerle değiştirme işlemi gösterilmektedir. Geçerli değer değiştirilmedi.

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

Aşağıdaki örnek, değiştirilmiş olan geçerli değerleri tutar, ancak diğer değerleri veritabanı değerleriyle güncelleştirir.

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)

Açıklamalar

Aşağıdaki örneklerde için çeşitli değerler kullanılarak hangi sonuçların üretildiği gösterilmektedir RefreshMode.

Şunlara uygulanır

Resolve(RefreshMode, Boolean)

Geçerli değerleri saklayan ve temel özgün değerleri sıfırlayan üye çakışmalarını çözün.

public:
 void Resolve(System::Data::Linq::RefreshMode refreshMode, bool autoResolveDeletes);
public void Resolve(System.Data.Linq.RefreshMode refreshMode, bool autoResolveDeletes);
member this.Resolve : System.Data.Linq.RefreshMode * bool -> unit
Public Sub Resolve (refreshMode As RefreshMode, autoResolveDeletes As Boolean)

Parametreler

refreshMode
RefreshMode

'den RefreshModeuygun seçenek.

autoResolveDeletes
Boolean

olduğunda true, artık veritabanında olmayan değiştirilmiş bir nesneden kaynaklanan çakışmaları otomatik olarak çözer.

Şunlara uygulanır