ObjectContext.Refresh 메서드
정의
중요
일부 정보는 릴리스되기 전에 상당 부분 수정될 수 있는 시험판 제품과 관련이 있습니다. Microsoft는 여기에 제공된 정보에 대해 어떠한 명시적이거나 묵시적인 보증도 하지 않습니다.
개체 컨텍스트의 특정 개체를 데이터 소스의 데이터로 업데이트합니다.
오버로드
Refresh(RefreshMode, IEnumerable) |
개체 컨텍스트의 개체 컬렉션을 데이터 소스의 데이터로 업데이트합니다. |
Refresh(RefreshMode, Object) |
개체 컨텍스트의 개체를 데이터 소스의 데이터로 업데이트합니다. |
설명
개체를 새로 고치는 순서는 비결정적입니다.
Refresh(RefreshMode, IEnumerable)
개체 컨텍스트의 개체 컬렉션을 데이터 소스의 데이터로 업데이트합니다.
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)
매개 변수
- refreshMode
- RefreshMode
개체 컨텍스트의 속성 변경 내용을 데이터 소스의 속성 값으로 덮어쓸지 여부를 나타내는 RefreshMode 값입니다.
- collection
- IEnumerable
새로 고칠 개체의 IEnumerable 컬렉션입니다.
예외
collection
이(가) null
인 경우
refreshMode
가 잘못된 경우
설명
이 메서드는 개체 컨텍스트의 개체를 데이터 원본의 데이터로 새로 고칠 수 있도록 하고 충돌을 해결할 수 있는 메커니즘이 되도록 하는 이중 목적을 가지고 있습니다. 자세한 내용은 변경 내용 저장 및 동시성 관리합니다.
개체를 새로 고치는 순서는 비결정적입니다.
가 호출된 후 Refresh 개체의 원래 값은 항상 데이터 원본 값으로 업데이트되지만 현재 값은 데이터 원본 값으로 업데이트되거나 업데이트되지 않을 수 있습니다. 값에 RefreshMode 따라 달라집니다. 모드는 StoreWins 데이터 원본 값과 일치하도록 컬렉션의 개체를 업데이트해야 했음을 의미합니다. ClientWins 는 데이터 원본에 다른 변경 내용이 있더라도 개체 컨텍스트의 변경 내용만 유지됨을 의미합니다.
개체가 데이터 원본 쪽 논리에 의해 업데이트되었는지 확인하려면 메서드를 호출한 후 를 StoreWins 호출 RefreshSaveChanges 할 수 있습니다.
추가 정보
적용 대상
Refresh(RefreshMode, Object)
개체 컨텍스트의 개체를 데이터 소스의 데이터로 업데이트합니다.
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)
매개 변수
- refreshMode
- RefreshMode
RefreshMode를 새로 고치는 데 사용할 모드를 지정하는 ObjectStateManager 값 중 하나입니다.
- entity
- Object
새로 고칠 개체입니다.
예외
collection
이(가) null
인 경우
refreshMode
가 잘못된 경우
예제
이 예제에서는 변경 내용을 저장하려고 시도하며 이로 인해 동시성 충돌이 발생할 수 있습니다. 그런 다음, 변경 내용을 다시 저장하기 전에 개체 컨텍스트를 새로 고쳐 동시성 충돌을 해결하는 방법을 보여줍니다.
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());
}
}
설명
Refresh 에는 개체를 데이터 원본의 데이터로 새로 고칠 수 있고 충돌을 해결할 수 있는 메커니즘이 되는 이중 목적이 있습니다. 자세한 내용은 변경 내용 저장 및 동시성 관리합니다.
개체를 새로 고치는 순서는 비결정적입니다.
메서드가 Refresh 호출된 후 개체의 원래 값은 항상 데이터 원본 값으로 업데이트되지만 현재 값은 데이터 원본 값으로 업데이트되거나 업데이트되지 않을 수 있습니다. 이는 에 RefreshMode따라 달라집니다. 모드는 StoreWins 데이터 원본 값과 일치하도록 개체를 업데이트해야 했음을 의미합니다. 값은 ClientWins 데이터 원본에 다른 변경 내용이 있더라도 개체 컨텍스트의 변경 내용만 유지됨을 의미합니다.
개체가 데이터 원본 쪽 논리에 의해 업데이트되었는지 확인하려면 메서드를 호출한 Refresh 후 값을 사용하여 StoreWins 메서드를 SaveChanges 호출할 수 있습니다.
추가 정보
적용 대상
.NET