Share via


ObjectContext.Refresh Metode

Definisi

Updates objek tertentu dalam konteks objek dengan data dari sumber data.

Overload

Refresh(RefreshMode, IEnumerable)

Updates kumpulan objek dalam konteks objek dengan data dari sumber data.

Refresh(RefreshMode, Object)

Updates objek dalam konteks objek dengan data dari sumber data.

Keterangan

Urutan di mana objek disegarkan tidak deterministik.

Refresh(RefreshMode, IEnumerable)

Updates 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 yang akan di-refresh.

Pengecualian

collectionadalah null.

refreshMode tidak valid.

collection kosong.

-atau-

Objek tidak dilampirkan ke konteks.

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)

Updates 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 me-refresh ObjectStateManager.

entity
Object

Objek yang akan disegarkan.

Pengecualian

collectionadalah null.

refreshMode tidak valid.

collection kosong.

-atau-

Objek tidak dilampirkan ke konteks.

Contoh

Contoh ini mencoba menyimpan perubahan, dan ini dapat menyebabkan konflik konkurensi. Kemudian menunjukkan cara mengatasi konflik konkurensi dengan menyegarkan konteks objek sebelum menyimpan ulang 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 .

Lihat juga

Berlaku untuk