.NET Framework 類別庫
ObjectChangeConflict..::.Resolve 方法 (RefreshMode)

更新:2007 年 11 月

使用指定的 RefreshMode,解決成員衝突。

命名空間:  System.Data.Linq
組件:  System.Data.Linq (在 System.Data.Linq.dll 中)

語法

Visual Basic (宣告)
Public Sub Resolve ( _
    refreshMode As RefreshMode _
)
Visual Basic (使用方式)
Dim instance As ObjectChangeConflict
Dim refreshMode As RefreshMode

instance.Resolve(refreshMode)
C#
public void Resolve(
    RefreshMode refreshMode
)
Visual C++
public:
void Resolve(
    RefreshMode refreshMode
)
J#
public void Resolve(
    RefreshMode refreshMode
)
JScript
public function Resolve(
    refreshMode : RefreshMode
)

參數

refreshMode
型別:System.Data.Linq..::.RefreshMode

來自 RefreshMode 的適當選項。

備註

下列範例顯示使用 RefreshMode 的各種值會產生什麼結果。

範例

下列範例會以資料庫的值覆寫目前的值。

Visual Basic
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
C#
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);
    }
}

下列範例顯示如何將原始值與從資料庫中擷取的值交換。未修改目前的值。

Visual Basic
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
C#
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);
    }
}

下列範例會保留目前已變更的值,但是會將其他值更新為資料庫的值。

Visual Basic
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)
C#
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);
平台

Windows Vista, Windows XP SP2, Windows Server 2003

.NET Framework 和 .NET Compact Framework 並不支援各種平台的所有版本。如需支援平台版本的相關資訊,請參閱 .NET Framework 系統需求

版本資訊

.NET Framework

支援版本:3.5
請參閱

參考

標記 :


Page view tracker