ObjectContext.Refresh Metoda
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
Aktualizacje określonych obiektów w kontekście obiektu z danymi ze źródła danych.
Przeciążenia
Refresh(RefreshMode, IEnumerable) |
Aktualizacje kolekcję obiektów w kontekście obiektu z danymi ze źródła danych. |
Refresh(RefreshMode, Object) |
Aktualizacje obiekt w kontekście obiektu z danymi ze źródła danych. |
Uwagi
Kolejność odświeżania obiektów jest nieokreślona.
Refresh(RefreshMode, IEnumerable)
Aktualizacje kolekcję obiektów w kontekście obiektu z danymi ze źródła danych.
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)
Parametry
- refreshMode
- RefreshMode
RefreshMode Wartość wskazująca, czy zmiany właściwości w kontekście obiektu są zastępowane wartościami właściwości ze źródła danych.
- collection
- IEnumerable
Kolekcja IEnumerable obiektów do odświeżenia.
Wyjątki
collection
to null
.
refreshMode
jest nieprawidłowa.
Uwagi
Ta metoda ma podwójny cel zezwalania na odświeżanie obiektów w kontekście obiektu przy użyciu danych ze źródła danych i jest mechanizmem, za pomocą którego można rozwiązać konflikty. Aby uzyskać więcej informacji, zobacz Zapisywanie zmian i zarządzanie współbieżnością.
Kolejność odświeżania obiektów jest nieokreślona.
Po Refresh wywołaniu oryginalne wartości obiektu będą zawsze aktualizowane przy użyciu wartości źródła danych, ale bieżące wartości mogą lub nie mogą być aktualizowane przy użyciu wartości źródła danych. Zależy to od RefreshMode wartości. Tryb StoreWins oznacza, że obiekty w kolekcji powinny być aktualizowane tak, aby były zgodne z wartościami źródła danych. ClientWins oznacza, że tylko zmiany w kontekście obiektu zostaną utrwalone, nawet jeśli w źródle danych wprowadzono inne zmiany.
Aby upewnić się, że obiekty zostały zaktualizowane przez logikę po stronie źródła danych, możesz wywołać Refresh metodę StoreWinsSaveChanges za pomocą metody .
Zobacz też
Dotyczy
Refresh(RefreshMode, Object)
Aktualizacje obiekt w kontekście obiektu z danymi ze źródła danych.
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)
Parametry
- refreshMode
- RefreshMode
RefreshMode Jedną z wartości określających tryb, który ma być używany do odświeżania elementu ObjectStateManager.
- entity
- Object
Obiekt do odświeżenia.
Wyjątki
collection
to null
.
refreshMode
jest nieprawidłowa.
Przykłady
Ten przykład próbuje zapisać zmiany i może to spowodować konflikt współbieżności. Następnie pokazano, jak rozwiązać konflikt współbieżności, odświeżając kontekst obiektu przed ponownym zapisaniem zmian.
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());
}
}
Uwagi
Refresh ma podwójny cel zezwalania na odświeżanie obiektu przy użyciu danych ze źródła danych i jest mechanizmem, za pomocą którego można rozwiązać konflikty. Aby uzyskać więcej informacji, zobacz Zapisywanie zmian i zarządzanie współbieżnością.
Kolejność odświeżania obiektów jest nieokreślona.
Po wywołaniu Refresh metody oryginalne wartości obiektu będą zawsze aktualizowane przy użyciu wartości źródła danych, ale bieżące wartości mogą lub nie zostaną zaktualizowane przy użyciu wartości źródła danych. Zależy to od .RefreshMode Tryb StoreWins oznacza, że obiekt powinien zostać zaktualizowany tak, aby był zgodny z wartościami źródła danych. Wartość ClientWins oznacza, że tylko zmiany w kontekście obiektu zostaną utrwalone, nawet jeśli w źródle danych wprowadzono inne zmiany.
Aby upewnić się, że obiekt został zaktualizowany przez logikę po stronie źródła danych, możesz wywołać metodę z wartością StoreWins po wywołaniu RefreshSaveChanges metody .
Zobacz też
Dotyczy
Opinia
https://aka.ms/ContentUserFeedback.
Dostępne już wkrótce: W 2024 r. będziemy stopniowo wycofywać zgłoszenia z serwisu GitHub jako mechanizm przesyłania opinii na temat zawartości i zastępować go nowym systemem opinii. Aby uzyskać więcej informacji, sprawdź:Prześlij i wyświetl opinię dla