Aracılığıyla paylaş


ObjectChangeConflict.Resolve Yöntem

Tanım

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

Aşırı Yüklemeler

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 tutan 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 geçerli değerlerin üzerine veritabanındaki değerleri 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ştirilmez.

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ştirilen 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 RefreshModekullanılarak hangi sonuçların üretildiği gösterilir.

Şunlara uygulanır

Resolve(RefreshMode, Boolean)

Geçerli değerleri tutan 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