ObjectContext.Refresh 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.
Uppdaterar specifika objekt i objektkontexten med data från datakällan.
Överlagringar
| Name | Description |
|---|---|
| Refresh(RefreshMode, IEnumerable) |
Uppdaterar en samling objekt i objektkontexten med data från datakällan. |
| Refresh(RefreshMode, Object) |
Uppdaterar ett objekt i objektkontexten med data från datakällan. |
Kommentarer
Ordningen i vilken objekt uppdateras är icke-terministisk.
Refresh(RefreshMode, IEnumerable)
Uppdaterar en samling objekt i objektkontexten med data från datakällan.
public:
void Refresh(System::Data::Objects::RefreshMode refreshMode, System::Collections::IEnumerable ^ collection);
public void Refresh(System.Data.Objects.RefreshMode refreshMode, System.Collections.IEnumerable collection);
member this.Refresh : System.Data.Objects.RefreshMode * System.Collections.IEnumerable -> unit
Public Sub Refresh (refreshMode As RefreshMode, collection As IEnumerable)
Parametrar
- refreshMode
- RefreshMode
Ett RefreshMode värde som anger om egenskapsändringar i objektkontexten skrivs över med egenskapsvärden från datakällan.
- collection
- IEnumerable
En IEnumerable samling objekt som ska uppdateras.
Undantag
collection är null.
refreshMode är ogiltigt.
Kommentarer
Den här metoden har det dubbla syftet att tillåta att objekt i objektkontexten uppdateras med data från datakällan och är den mekanism med vilken konflikter kan lösas. Mer information finns i Spara ändringar och hantera samtidighet.
Ordningen i vilken objekt uppdateras är icke-terministisk.
När Refresh har anropats uppdateras objektets ursprungliga värden alltid med datakällans värde, men de aktuella värdena kanske eller kanske inte uppdateras med datakällans värde. Detta beror på värdet RefreshMode . Läget StoreWins innebär att objekten i samlingen ska uppdateras så att de matchar datakällans värden. ClientWins innebär att endast ändringarna i objektkontexten sparas, även om det har gjorts andra ändringar i datakällan.
För att säkerställa att objekt har uppdaterats av datakälllogik kan du anropa Refresh med StoreWins när du har anropat SaveChanges metoden.
Se även
Gäller för
Refresh(RefreshMode, Object)
Uppdaterar ett objekt i objektkontexten med data från datakällan.
public:
void Refresh(System::Data::Objects::RefreshMode refreshMode, System::Object ^ entity);
public void Refresh(System.Data.Objects.RefreshMode refreshMode, object entity);
member this.Refresh : System.Data.Objects.RefreshMode * obj -> unit
Public Sub Refresh (refreshMode As RefreshMode, entity As Object)
Parametrar
- refreshMode
- RefreshMode
Ett av de RefreshMode värden som anger vilket läge som ska användas för att uppdatera ObjectStateManager.
- entity
- Object
Objektet som ska uppdateras.
Undantag
refreshMode är ogiltigt.
Ett objekt är inte kopplat till kontexten.
Exempel
Det här exemplet försöker spara ändringar och detta kan orsaka en samtidighetskonflikt. Sedan visas hur du löser samtidighetskonflikten genom att uppdatera objektkontexten innan ändringarna sparas på nytt.
using (AdventureWorksEntities context =
new AdventureWorksEntities())
{
try
{
// Perform an operation with a high-level of concurrency.
// Change the status of all orders without an approval code.
ObjectQuery<SalesOrderHeader> orders =
context.SalesOrderHeaders.Where(
"it.CreditCardApprovalCode IS NULL").Top("100");
foreach (SalesOrderHeader order in orders)
{
// Reset the order status to 4 = Rejected.
order.Status = 4;
}
try
{
// Try to save changes, which may cause a conflict.
int num = context.SaveChanges();
Console.WriteLine("No conflicts. " +
num.ToString() + " updates saved.");
}
catch (OptimisticConcurrencyException)
{
// Resolve the concurrency conflict by refreshing the
// object context before re-saving changes.
context.Refresh(RefreshMode.ClientWins, orders);
// Save changes.
context.SaveChanges();
Console.WriteLine("OptimisticConcurrencyException "
+ "handled and changes saved");
}
foreach (SalesOrderHeader order in orders)
{
Console.WriteLine("Order ID: " + order.SalesOrderID.ToString()
+ " Order status: " + order.Status.ToString());
}
}
catch (UpdateException ex)
{
Console.WriteLine(ex.ToString());
}
}
Kommentarer
Refresh har det dubbla syftet att tillåta att ett objekt uppdateras med data från datakällan och är den mekanism med vilken konflikter kan lösas. Mer information finns i Spara ändringar och hantera samtidighet.
Ordningen i vilken objekt uppdateras är icke-terministisk.
Refresh När metoden har anropats uppdateras objektets ursprungliga värden alltid med datakällans värde, men de aktuella värdena kanske eller kanske inte uppdateras med datakällans värde. Detta beror på RefreshMode. Läget StoreWins innebär att objektet ska uppdateras så att det matchar datakällans värden. Värdet ClientWins innebär att endast ändringarna i objektkontexten sparas, även om det har gjorts andra ändringar i datakällan.
För att säkerställa att ett objekt har uppdaterats av datakälllogik kan du anropa Refresh metoden med StoreWins värdet när du anropar SaveChanges metoden.