ObjectContext.Refresh Yöntem
Tanım
Önemli
Bazı bilgiler ürünün ön sürümüyle ilgilidir ve sürüm öncesinde önemli değişiklikler yapılmış olabilir. Burada verilen bilgilerle ilgili olarak Microsoft açık veya zımni hiçbir garanti vermez.
Veri kaynağındaki verilerle nesne bağlamında belirli nesneleri Güncelleştirmeler.
Aşırı Yüklemeler
Refresh(RefreshMode, IEnumerable) |
Veri kaynağındaki verilerle nesne bağlamındaki nesne koleksiyonunu Güncelleştirmeler. |
Refresh(RefreshMode, Object) |
Nesne bağlamındaki bir nesneyi veri kaynağındaki verilerle Güncelleştirmeler. |
Açıklamalar
Nesnelerin yenilenme sırası belirleyici değildir.
Refresh(RefreshMode, IEnumerable)
Veri kaynağındaki verilerle nesne bağlamındaki nesne koleksiyonunu Güncelleştirmeler.
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 Nesne bağlamındaki özellik değişikliklerinin, veri kaynağındaki özellik değerleriyle üzerine yazıp yazılmadığını gösteren bir değer.
- collection
- IEnumerable
IEnumerable Yenilenen nesne koleksiyonu.
Özel durumlar
collection
, null
değeridir.
refreshMode
geçerli değil.
Açıklamalar
Bu yöntem, nesne bağlamındaki nesnelerin veri kaynağındaki verilerle yenilenmesine ve çakışmaların çözümlenebileceği mekanizma olmasına izin vermenin çift 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.
Ç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 sonra ile StoreWins öğesini çağırabilirsiniz.RefreshSaveChanges
Ayrıca bkz.
Şunlara uygulanır
Refresh(RefreshMode, Object)
Nesne bağlamındaki bir nesneyi veri kaynağındaki verilerle Güncelleştirmeler.
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 öğesini yenilemek ObjectStateManageriçin hangi modun kullanılacağını belirten değerlerden biri.
- entity
- Object
Yenilenecek nesne.
Özel durumlar
collection
, null
değeridir.
refreshMode
geçerli 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ümlenebileceğ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öntemi ç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 RefreshModebağlıdır. 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
Geri Bildirim
https://aka.ms/ContentUserFeedback.
Çok yakında: 2024 boyunca, içerik için geri bildirim mekanizması olarak GitHub Sorunları’nı kullanımdan kaldıracak ve yeni bir geri bildirim sistemiyle değiştireceğiz. Daha fazla bilgi için bkz.Gönderin ve geri bildirimi görüntüleyin