MemberChangeConflict.Resolve Metod
Definition
Viktigt
En del information gäller för förhandsversionen av en produkt och kan komma att ändras avsevärt innan produkten blir allmänt tillgänglig. Microsoft lämnar inga garantier, uttryckliga eller underförstådda, avseende informationen som visas här.
Löser medlemskonflikter genom att behålla aktuella värden och återställa originalvärdena för baslinjen så att de matchar de nyare databasvärdena.
Överlagringar
| Name | Description |
|---|---|
| Resolve(RefreshMode) |
Använder en RefreshMode parameter för att automatiskt ange det värde som ska anges som aktuellt värde för medlemmen i konflikt. |
| Resolve(Object) |
Anger värdet som ska anges som aktuellt värde för medlemmen i konflikt. |
Resolve(RefreshMode)
Använder en RefreshMode parameter för att automatiskt ange det värde som ska anges som aktuellt värde för medlemmen i konflikt.
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)
Parametrar
- refreshMode
- RefreshMode
Se även RefreshMode.
Exempel
I följande exempel skrivs aktuella värden över med värden från databasen.
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
I följande exempel visas hur du växlar det ursprungliga värdet med de värden som hämtats från databasen. Inget aktuellt värde ändras.
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
I följande exempel behålls de aktuella värden som har ändrats, men de andra värdena uppdateras med databasvärden.
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)
Kommentarer
I följande exempel visas vilka resultat som genereras med hjälp av de olika värdena för RefreshMode.
Gäller för
Resolve(Object)
Anger värdet som ska anges som aktuellt värde för medlemmen i konflikt.
public:
void Resolve(System::Object ^ value);
public void Resolve(object value);
member this.Resolve : obj -> unit
Public Sub Resolve (value As Object)
Parametrar
- value
- Object
Värdet som ska anges som aktuellt värde.
Kommentarer
Värdet som anges här är det värde som ska användas i en efterföljande SubmitChanges åtgärd.