다음을 통해 공유


MemberChangeConflict.Resolve 메서드

정의

현재 값을 유지하고 최신 데이터베이스 값에 맞게 원래 기준 값을 다시 설정하여 멤버 충돌을 해결합니다.

오버로드

Resolve(RefreshMode)

RefreshMode 매개 변수를 사용하여 충돌이 발생한 멤버의 현재 값으로 설정할 값을 자동으로 지정합니다.

Resolve(Object)

충돌이 발생한 멤버의 현재 값으로 설정할 값을 지정합니다.

Resolve(RefreshMode)

RefreshMode 매개 변수를 사용하여 충돌이 발생한 멤버의 현재 값으로 설정할 값을 자동으로 지정합니다.

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)

매개 변수

refreshMode
RefreshMode

RefreshMode을 참조하세요.

예제

다음 예에서는 데이터베이스의 값을 사용 하 여 현재 값을 덮어씁니다.

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

다음 예에서는 데이터베이스에서 검색 된 값으로 원래 값을 교환 하는 방법을 보여 줍니다. 현재 값은 수정되지 않습니다.

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

다음 예에서는 데이터베이스 값을 사용 하 여 다른 값을 업데이트 하지만 변경 된 현재 값을 유지 합니다.

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)

설명

다음 예제에서는 표시에 대 한 다양 한 값을 사용 하 여 생성 되는 결과 RefreshMode합니다.

적용 대상

Resolve(Object)

충돌이 발생한 멤버의 현재 값으로 설정할 값을 지정합니다.

public:
 void Resolve(System::Object ^ value);
public void Resolve (object value);
member this.Resolve : obj -> unit
Public Sub Resolve (value As Object)

매개 변수

value
Object

현재 값으로 설정할 값입니다.

설명

여기서 설정한 값은 후속에 사용할 값 SubmitChanges 작업 합니다.

적용 대상