MemberChangeConflict.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ů zachováním aktuálních hodnot a resetováním původních hodnot směrného plánu tak, aby odpovídaly novějším hodnotám databáze.
Přetížení
Resolve(RefreshMode) |
RefreshMode Používá parametr k automatickému určení hodnoty, která se má nastavit jako aktuální hodnota pro konfliktní člen. |
Resolve(Object) |
Určuje hodnotu, která se má nastavit jako aktuální hodnota pro konfliktní člen. |
Resolve(RefreshMode)
RefreshMode Používá parametr k automatickému určení hodnoty, která se má nastavit jako aktuální hodnota pro konfliktní člen.
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
Viz třída 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. Aktuální hodnota není změněna.
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í změněné hodnoty, 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(Object)
Určuje hodnotu, která se má nastavit jako aktuální hodnota pro konfliktní člen.
public:
void Resolve(System::Object ^ value);
public void Resolve (object value);
member this.Resolve : obj -> unit
Public Sub Resolve (value As Object)
Parametry
- value
- Object
Hodnota, která se má nastavit jako aktuální hodnota.
Poznámky
Zde nastavená hodnota je hodnota, která se použije v následné SubmitChanges operaci.