ObjectChangeConflict.Resolve 메서드
정의
중요
일부 정보는 릴리스되기 전에 상당 부분 수정될 수 있는 시험판 제품과 관련이 있습니다. Microsoft는 여기에 제공된 정보에 대해 어떠한 명시적이거나 묵시적인 보증도 하지 않습니다.
멤버 충돌을 해결합니다.
오버로드
| Name | Description |
|---|---|
| Resolve() |
현재 값을 유지하고 초기 계획 원래 값을 최신 데이터베이스 값과 일치하도록 다시 설정하여 멤버 충돌을 해결합니다. |
| Resolve(RefreshMode) |
지정된 RefreshMode을 사용하여 멤버 충돌을 해결합니다. |
| Resolve(RefreshMode, Boolean) |
현재 값을 유지하고 기준 원래 값을 다시 설정하는 멤버 충돌을 해결합니다. |
Resolve()
현재 값을 유지하고 초기 계획 원래 값을 최신 데이터베이스 값과 일치하도록 다시 설정하여 멤버 충돌을 해결합니다.
public:
void Resolve();
public void Resolve();
member this.Resolve : unit -> unit
Public Sub Resolve ()
적용 대상
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(RefreshMode, Boolean)
현재 값을 유지하고 기준 원래 값을 다시 설정하는 멤버 충돌을 해결합니다.
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)
매개 변수
- refreshMode
- RefreshMode
에서의 적절한 옵션 RefreshMode입니다.
- autoResolveDeletes
- Boolean
이 경우 true데이터베이스에 더 이상 없는 수정된 개체에서 발생하는 충돌을 자동으로 해결합니다.