ObjectChangeConflict.Resolve Methode
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Löst Memberkonflikte auf.
Überlädt
| Name | Beschreibung |
|---|---|
| Resolve() |
Behebt Memberkonflikte, indem aktuelle Werte beibehalten und die Basiswerte zurückgesetzt werden, damit sie den zuletzt verwendeten Datenbankwerten entsprechen. |
| Resolve(RefreshMode) |
Löst Memberkonflikte mithilfe der angegebenen RefreshMode. |
| Resolve(RefreshMode, Boolean) |
Lösen Sie Memberkonflikte, die aktuelle Werte beibehalten, und setzen Sie die ursprünglichen Basiswerte zurück. |
Resolve()
Behebt Memberkonflikte, indem aktuelle Werte beibehalten und die Basiswerte zurückgesetzt werden, damit sie den zuletzt verwendeten Datenbankwerten entsprechen.
public:
void Resolve();
public void Resolve();
member this.Resolve : unit -> unit
Public Sub Resolve ()
Gilt für:
Resolve(RefreshMode)
Löst Memberkonflikte mithilfe der angegebenen 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)
Parameter
- refreshMode
- RefreshMode
Die entsprechende Option von RefreshMode.
Beispiele
Im folgenden Beispiel werden die aktuellen Werte mit Werten aus der Datenbank überschrieben.
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
Das folgende Beispiel zeigt, wie Der ursprüngliche Wert mit den aus der Datenbank abgerufenen Werten ausgetauscht wird. Es wird kein aktueller Wert geändert.
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
Im folgenden Beispiel werden die aktuellen Werte beibehalten, die geändert wurden, aber die anderen Werte werden mit Datenbankwerten aktualisiert.
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)
Hinweise
Die folgenden Beispiele zeigen, welche Ergebnisse mithilfe der verschiedenen Werte RefreshModeerzeugt werden.
Gilt für:
Resolve(RefreshMode, Boolean)
Lösen Sie Memberkonflikte, die aktuelle Werte beibehalten, und setzen Sie die ursprünglichen Basiswerte zurück.
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)
Parameter
- refreshMode
- RefreshMode
Die entsprechende Option von RefreshMode.
- autoResolveDeletes
- Boolean
Wenn true, löst automatisch Konflikte, die sich aus einem geänderten Objekt ergeben, das sich nicht mehr in der Datenbank befindet.