ObjectChangeConflict.Resolve Metoda
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
Řeší konflikty členů.
Přetížení
Resolve() |
Řeší konflikty členů tím, že zachová aktuální hodnoty a resetuje původní hodnoty směrného plánu tak, aby odpovídaly novějším hodnotám databáze. |
Resolve(RefreshMode) |
Řeší konflikty členů pomocí zadaného RefreshModeobjektu . |
Resolve(RefreshMode, Boolean) |
Vyřešte konflikty členů zachováním aktuálních hodnot a resetováním původních hodnot směrného plánu. |
Resolve()
Řeší konflikty členů tím, že zachová aktuální hodnoty a resetuje původní hodnoty směrného plánu tak, aby odpovídaly novějším hodnotám databáze.
public:
void Resolve();
public void Resolve ();
member this.Resolve : unit -> unit
Public Sub Resolve ()
Platí pro
Resolve(RefreshMode)
Řeší konflikty členů pomocí zadaného RefreshModeobjektu .
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)
Parametry
- refreshMode
- RefreshMode
Příslušná možnost z .RefreshMode
Příklady
Následující příklad přepíše aktuální hodnoty hodnotami z databáze.
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
Následující příklad ukazuje, jak prohodit původní hodnotu s hodnotami načtenými z databáze. Není změněna žádná aktuální hodnota.
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
Následující příklad uchovává aktuální hodnoty, které byly změněny, ale aktualizuje ostatní hodnoty hodnotami databáze.
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)
Poznámky
Následující příklady ukazují, jaké výsledky se generují pomocí různých hodnot pro RefreshMode.
Platí pro
Resolve(RefreshMode, Boolean)
Vyřešte konflikty členů zachováním aktuálních hodnot a resetováním původních hodnot směrného plánu.
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)
Parametry
- refreshMode
- RefreshMode
Příslušná možnost z .RefreshMode
- autoResolveDeletes
- Boolean
Když true
, automaticky vyřeší konflikty vyplývající z upraveného objektu, který již není v databázi.