ObjectStateManager.TryGetObjectStateEntry 메서드
정의
중요
일부 정보는 릴리스되기 전에 상당 부분 수정될 수 있는 시험판 제품과 관련이 있습니다. Microsoft는 여기에 제공된 정보에 대해 어떠한 명시적이거나 묵시적인 보증도 하지 않습니다.
특정 개체 또는 관계 항목에 대한 ObjectStateEntry 개체를 반환하려고 시도합니다.
오버로드
TryGetObjectStateEntry(EntityKey, ObjectStateEntry) |
지정된 ObjectStateEntry를 사용하여 개체 또는 관계에 대한 해당 EntityKey를 검색하려고 시도합니다. |
TryGetObjectStateEntry(Object, ObjectStateEntry) |
지정된 ObjectStateEntry에 대한 해당 Object를 검색하려고 시도합니다. |
TryGetObjectStateEntry(EntityKey, ObjectStateEntry)
지정된 ObjectStateEntry를 사용하여 개체 또는 관계에 대한 해당 EntityKey를 검색하려고 시도합니다.
public:
bool TryGetObjectStateEntry(System::Data::EntityKey ^ key, [Runtime::InteropServices::Out] System::Data::Objects::ObjectStateEntry ^ % entry);
public bool TryGetObjectStateEntry (System.Data.EntityKey key, out System.Data.Objects.ObjectStateEntry entry);
member this.TryGetObjectStateEntry : System.Data.EntityKey * ObjectStateEntry -> bool
Public Function TryGetObjectStateEntry (key As EntityKey, ByRef entry As ObjectStateEntry) As Boolean
매개 변수
- entry
- ObjectStateEntry
이 메서드가 반환될 때 지정된 ObjectStateEntry의 EntityKey가 포함됩니다. 이 매개 변수는 초기화되지 않은 상태로 전달됩니다.
반환
지정된 ObjectStateEntry의 해당 EntityKey가 있으면 true
이고, 그렇지 않으면 false
인 부울 값입니다.
예외
null
(Visual Basic인 경우, Nothing
) 값은 key
에 제공됩니다.
예제
다음 예제에서는 지정된 EntityKey에 해당하는 ObjectStateEntry 를 검색하려고 시도합니다.
int orderId = 43680;
using (AdventureWorksEntities context =
new AdventureWorksEntities())
{
ObjectStateManager objectStateManager = context.ObjectStateManager;
ObjectStateEntry stateEntry = null;
var order = (from o in context.SalesOrderHeaders
where o.SalesOrderID == orderId
select o).First();
// Attempts to retrieve ObjectStateEntry for the given EntityKey.
bool isPresent = objectStateManager.TryGetObjectStateEntry(((IEntityWithKey)order).EntityKey, out stateEntry);
if (isPresent)
{
Console.WriteLine("The entity was found");
}
}
다음 예제에서는 반환 ObjectStateManager 된 의 TryGetObjectStateEntry(EntityKey, ObjectStateEntry) 메서드를 사용하여 엔터티 키를 기반으로 개체를 가져옵니다.
private static void ApplyItemUpdates(SalesOrderDetail originalItem,
SalesOrderDetail updatedItem)
{
using (AdventureWorksEntities context =
new AdventureWorksEntities())
{
context.SalesOrderDetails.Attach(updatedItem);
// Check if the ID is 0, if it is the item is new.
// In this case we need to chage the state to Added.
if (updatedItem.SalesOrderDetailID == 0)
{
// Because the ID is generated by the database we do not need to
// set updatedItem.SalesOrderDetailID.
context.ObjectStateManager.ChangeObjectState(updatedItem, System.Data.EntityState.Added);
}
else
{
// If the SalesOrderDetailID is not 0, then the item is not new
// and needs to be updated. Because we already added the
// updated object to the context we need to apply the original values.
// If we attached originalItem to the context
// we would need to apply the current values:
// context.ApplyCurrentValues("SalesOrderDetails", updatedItem);
// Applying current or original values, changes the state
// of the attached object to Modified.
context.ApplyOriginalValues("SalesOrderDetails", originalItem);
}
context.SaveChanges();
}
}
설명
메서드에서 발생한 GetObjectStateEntry(EntityKey) 를 ObjectStateEntry 처리 InvalidOperationException 할 필요 없이 를 반환하는 데 사용합니다TryGetObjectStateEntry(EntityKey, ObjectStateEntry).
적용 대상
TryGetObjectStateEntry(Object, ObjectStateEntry)
지정된 ObjectStateEntry에 대한 해당 Object를 검색하려고 시도합니다.
public:
bool TryGetObjectStateEntry(System::Object ^ entity, [Runtime::InteropServices::Out] System::Data::Objects::ObjectStateEntry ^ % entry);
public bool TryGetObjectStateEntry (object entity, out System.Data.Objects.ObjectStateEntry entry);
member this.TryGetObjectStateEntry : obj * ObjectStateEntry -> bool
Public Function TryGetObjectStateEntry (entity As Object, ByRef entry As ObjectStateEntry) As Boolean
매개 변수
- entity
- Object
검색한 Object가 속하는 ObjectStateEntry입니다.
- entry
- ObjectStateEntry
이 메서드가 반환될 때 지정된 ObjectStateEntry에 대한 EntityKey가 포함됩니다. 이 매개 변수는 초기화되지 않은 상태로 전달됩니다.
반환
지정된 개체의 해당 ObjectStateEntry가 있으면 true
이고, 그렇지 않으면 false
인 부울 값입니다.
설명
메서드를 사용하여 메서드에서 발생된 ObjectStateEntry 를 처리 InvalidOperationException 하지 않고도 를 반환합니다GetObjectStateEntry(Object).TryGetObjectStateEntry(Object, ObjectStateEntry)
적용 대상
.NET