Aracılığıyla paylaş


ObjectContext.Refresh Yöntem

Tanım

Nesne bağlamındaki belirli nesneleri veri kaynağındaki verilerle güncelleştirir.

Aşırı Yüklemeler

Refresh(RefreshMode, IEnumerable)

Nesne bağlamındaki bir nesne koleksiyonunu veri kaynağındaki verilerle güncelleştirir.

Refresh(RefreshMode, Object)

Nesne bağlamındaki bir nesneyi veri kaynağındaki verilerle güncelleştirir.

Açıklamalar

Nesnelerin yenilenme sırası belirleyici değildir.

Refresh(RefreshMode, IEnumerable)

Nesne bağlamındaki bir nesne koleksiyonunu veri kaynağındaki verilerle güncelleştirir.

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)

Parametreler

refreshMode
RefreshMode

RefreshMode Veri kaynağındaki özellik değerleriyle nesne bağlamındaki özellik değişikliklerinin üzerine yazıp yazılmadığını gösteren değer.

collection
IEnumerable

IEnumerable Yenilenmesi gereken nesne koleksiyonu.

Özel durumlar

collection, null değeridir.

refreshMode geçerli değil.

collection boş.

-veya-

Nesne bağlama bağlı değil.

Açıklamalar

Bu yöntem, nesne bağlamındaki nesnelerin veri kaynağındaki verilerle yenilenmesine izin vermek ve çakışmaların çözümlenebileceği mekanizma olmak için iki amacı vardır. Daha fazla bilgi için bkz. Değişiklikleri Kaydetme ve Eşzamanlılığı Yönetme.

Nesnelerin yenilenme sırası belirleyici değildir.

Çağrıldıktan sonra Refresh nesnenin özgün değerleri her zaman veri kaynağı değeriyle güncelleştirilir, ancak geçerli değerler veri kaynağı değeriyle güncelleştirilebilir veya güncelleştirilmeyebilir. Bu değere RefreshMode bağlıdır. modu, StoreWins koleksiyondaki nesnelerin veri kaynağı değerleriyle eşleşecek şekilde güncelleştirilmesi gerektiği anlamına gelir. ClientWins , veri kaynağında başka değişiklikler olsa bile yalnızca nesne bağlamındaki değişikliklerin kalıcı olacağı anlamına gelir.

Nesnelerin veri kaynağı tarafı mantığıyla güncelleştirildiğinden emin olmak için yöntemini çağırdıktan RefreshSaveChanges sonra ile StoreWins çağrısı yapabilirsiniz.

Ayrıca bkz.

Şunlara uygulanır

Refresh(RefreshMode, Object)

Nesne bağlamındaki bir nesneyi veri kaynağındaki verilerle güncelleştirir.

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)

Parametreler

refreshMode
RefreshMode

RefreshMode yenilemek için ObjectStateManagerhangi modun kullanılacağını belirten değerlerden biri.

entity
Object

Yenilenecek nesne.

Özel durumlar

collection, null değeridir.

refreshMode geçerli değil.

collection boş.

-veya-

Nesne bağlama bağlı değil.

Örnekler

Bu örnek değişiklikleri kaydetmeye çalışır ve bu durum eşzamanlılık çakışmasına neden olabilir. Ardından, değişiklikleri yeniden kaydetmeden önce nesne bağlamını yenileyerek eşzamanlılık çakışmasının nasıl çözüleceğini gösterir.

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());
    }
}

Açıklamalar

Refresh bir nesnenin veri kaynağındaki verilerle yenilenmesine izin verme ve çakışmaların çözülebileceği mekanizma olma iki amacına sahiptir. Daha fazla bilgi için bkz. Değişiklikleri Kaydetme ve Eşzamanlılığı Yönetme.

Nesnelerin yenilenme sırası belirleyici değildir.

Refresh Yöntem çağrıldıktan sonra nesnenin özgün değerleri her zaman veri kaynağı değeriyle güncelleştirilir, ancak geçerli değerler veri kaynağı değeriyle güncelleştirilebilir veya güncelleştirilmeyebilir. Bu, öğesine bağlıdır RefreshMode. modu, StoreWins nesnenin veri kaynağı değerleriyle eşleşecek şekilde güncelleştirilmesi gerektiği anlamına gelir. ClientWins değeri, veri kaynağında başka değişiklikler olsa bile yalnızca nesne bağlamındaki değişikliklerin kalıcı olacağı anlamına gelir.

Bir nesnenin veri kaynağı tarafı mantığı tarafından güncelleştirildiğinden emin olmak için yöntemini çağırdıktan RefreshSaveChanges sonra değeriyle StoreWins çağırabilirsiniz.

Ayrıca bkz.

Şunlara uygulanır