ObjectContext.Refresh Metode
Definisi
Penting
Beberapa informasi terkait produk prarilis yang dapat diubah secara signifikan sebelum dirilis. Microsoft tidak memberikan jaminan, tersirat maupun tersurat, sehubungan dengan informasi yang diberikan di sini.
Memperbarui objek tertentu dalam konteks objek dengan data dari sumber data.
Overload
Refresh(RefreshMode, IEnumerable) |
Memperbarui kumpulan objek dalam konteks objek dengan data dari sumber data. |
Refresh(RefreshMode, Object) |
Memperbarui objek dalam konteks objek dengan data dari sumber data. |
Keterangan
Urutan di mana objek disegarkan tidak deterministik.
Refresh(RefreshMode, IEnumerable)
Memperbarui kumpulan objek dalam konteks objek dengan data dari sumber data.
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)
Parameter
- refreshMode
- RefreshMode
RefreshMode Nilai yang menunjukkan apakah perubahan properti dalam konteks objek ditimpa dengan nilai properti dari sumber data.
- collection
- IEnumerable
Kumpulan IEnumerable objek untuk di-refresh.
Pengecualian
collection
adalah null
.
refreshMode
tidak valid.
Keterangan
Metode ini memiliki tujuan ganda untuk memungkinkan objek dalam konteks objek disegarkan dengan data dari sumber data, dan menjadi mekanisme di mana konflik dapat diselesaikan. Untuk informasi selengkapnya, lihat Menyimpan Perubahan dan Mengelola Konkurensi.
Urutan di mana objek disegarkan tidak deterministik.
Setelah Refresh dipanggil, nilai asli objek akan selalu diperbarui dengan nilai sumber data, tetapi nilai saat ini mungkin atau mungkin tidak diperbarui dengan nilai sumber data. Ini tergantung pada nilainya RefreshMode . Mode ini StoreWins berarti bahwa objek dalam koleksi harus diperbarui agar sesuai dengan nilai sumber data. ClientWins berarti bahwa hanya perubahan dalam konteks objek yang akan dipertahankan, bahkan jika ada perubahan lain dalam sumber data.
Untuk memastikan bahwa objek telah diperbarui oleh logika sisi sumber data, Anda dapat memanggil Refresh dengan StoreWins setelah Anda memanggil SaveChanges metode .
Lihat juga
Berlaku untuk
Refresh(RefreshMode, Object)
Memperbarui objek dalam konteks objek dengan data dari sumber data.
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)
Parameter
- refreshMode
- RefreshMode
Salah RefreshMode satu nilai yang menentukan mode mana yang akan digunakan untuk merefresh ObjectStateManager.
- entity
- Object
Objek yang akan disegarkan.
Pengecualian
collection
adalah null
.
refreshMode
tidak valid.
Contoh
Contoh ini mencoba menyimpan perubahan, dan ini dapat menyebabkan konflik konkurensi. Kemudian menunjukkan cara mengatasi konflik konkurensi dengan menyegarkan konteks objek sebelum menyimpan kembali perubahan.
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());
}
}
Keterangan
Refresh memiliki tujuan ganda untuk memungkinkan objek di-refresh dengan data dari sumber data dan menjadi mekanisme di mana konflik dapat diselesaikan. Untuk informasi selengkapnya, lihat Menyimpan Perubahan dan Mengelola Konkurensi.
Urutan di mana objek disegarkan tidak deterministik.
Setelah metode dipanggil Refresh , nilai asli objek akan selalu diperbarui dengan nilai sumber data, tetapi nilai saat ini mungkin atau mungkin tidak diperbarui dengan nilai sumber data. Ini tergantung pada RefreshMode. Mode ini StoreWins berarti bahwa objek harus diperbarui agar sesuai dengan nilai sumber data. Nilai berarti ClientWins bahwa hanya perubahan dalam konteks objek yang akan dipertahankan, bahkan jika ada perubahan lain dalam sumber data.
Untuk memastikan bahwa objek telah diperbarui oleh logika sisi sumber data, Anda dapat memanggil Refresh metode dengan StoreWins nilai setelah Anda memanggil SaveChanges metode .